diff --git a/lib/pages/destination/destination_controller.dart b/lib/pages/destination/destination_controller.dart index 7a834ae..c472977 100644 --- a/lib/pages/destination/destination_controller.dart +++ b/lib/pages/destination/destination_controller.dart @@ -89,11 +89,11 @@ class DestinationController extends GetxController { makeCheckin(value, true); } else{ - showModalBottomSheet(context: Get.context!, isScrollControlled: true, - builder:((context) => BottomSheetWidget()) - ).whenComplete((){ - checking_in = false; - }); + // showModalBottomSheet(context: Get.context!, isScrollControlled: true, + // builder:((context) => BottomSheetWidget()) + // ).whenComplete((){ + // checking_in = false; + // }); } } diff --git a/lib/pages/destination_map/destination_map_page.dart b/lib/pages/destination_map/destination_map_page.dart index 8a1864e..11d8a79 100644 --- a/lib/pages/destination_map/destination_map_page.dart +++ b/lib/pages/destination_map/destination_map_page.dart @@ -92,13 +92,13 @@ class _DestinationMapPageState extends State { return IconButton( onPressed: ()async { Destination? fs = await destinationController.getDEstinationForLatLong(d.lat!, d.lon!); - print("----fsf-----${fs}"); + print("-- Destination is --- ${fs!.name} ------"); if(fs != null){ - if(indexController.currentFeature.length > 0) { + if(indexController.currentDestinationFeature.length > 0) { indexController.currentDestinationFeature.clear(); } indexController.currentDestinationFeature.add(fs); - indexController.getAction(); + //indexController.getAction(); showModalBottomSheet(context: context, isScrollControlled: true, //builder:((context) => BottomSheetWidget()) @@ -141,19 +141,19 @@ class _DestinationMapPageState extends State { child: TravelMap(), ), - Positioned( - bottom: 200, - left: 10, - child: Container( - color: Colors.white, - child: Row( - children: [ - Text(destinationController.gps[0]), - Text(destinationController.locationPermission[0]) - ], - ), - ) - ), + // Positioned( + // bottom: 200, + // left: 10, + // child: Container( + // color: Colors.white, + // child: Row( + // children: [ + // Text(destinationController.gps[0]), + // Text(destinationController.locationPermission[0]) + // ], + // ), + // ) + // ), ], ) )); @@ -214,12 +214,12 @@ class _DestinationMapPageState extends State { // examplePopup(marker), // ), // ), + LocationMarkerLayerWidget(), MarkerLayerWidget( options: MarkerLayerOptions( markers: getMarkers()! ), ), - LocationMarkerLayerWidget(), ], ); diff --git a/lib/pages/search/search_controller.dart b/lib/pages/search/search_controller.dart index 29871d5..281c470 100644 --- a/lib/pages/search/search_controller.dart +++ b/lib/pages/search/search_controller.dart @@ -13,11 +13,12 @@ List searchResults = [].obs; @override void onInit() { IndexController indexController = Get.find(); - for(int i=0; i<= indexController.locations[0].collection.length - 1; i++){ - GeoJsonFeature p = indexController.locations[0].collection[i]; - searchResults.add(p); - - } + if(indexController.locations.isNotEmpty){ + for(int i=0; i<= indexController.locations[0].collection.length - 1; i++){ + GeoJsonFeature p = indexController.locations[0].collection[i]; + searchResults.add(p); + } + } super.onInit(); } diff --git a/lib/pages/search/search_page.dart b/lib/pages/search/search_page.dart index 0083989..efb43ef 100644 --- a/lib/pages/search/search_page.dart +++ b/lib/pages/search/search_page.dart @@ -1,5 +1,7 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_typeahead/flutter_typeahead.dart'; +import 'package:geojson/geojson.dart'; import 'package:get/get.dart'; import 'package:rogapp/pages/index/index_controller.dart'; import 'package:rogapp/pages/search/search_controller.dart'; @@ -36,21 +38,24 @@ class SearchPage extends StatelessWidget { Navigator.pop(context); }, icon: const Icon(Icons.arrow_back_ios_new, color: Colors.black,)), - title: const CupertinoSearchTextField(), - - ), - body: - //Obx(() => - ListView.builder( - itemCount: searchController.searchResults.length, - itemBuilder: (context, index){ - return ListTile( - title: Text(searchController.searchResults[index].properties!["location_name"]), - subtitle: Text(searchController.searchResults[index].properties!["category"]), - leading: getImage(index), - onTap: (){ + title: TypeAheadField( + textFieldConfiguration: TextFieldConfiguration( + autofocus: true, + ), + suggestionsCallback: (pattern) async{ + return searchController.searchResults.where((GeoJsonFeature element) => element.properties!["location_name"].toString().contains(pattern)); + //return await + }, + itemBuilder: (context, GeoJsonFeature suggestion){ + return ListTile( + title: Text(suggestion.properties!["location_name"]), + subtitle: suggestion.properties!["category"] != null ? Text(suggestion.properties!["category"]) : Text(""), + //leading: getImage(index), + ); + }, + onSuggestionSelected: (GeoJsonFeature suggestion){ indexController.currentFeature.clear(); - indexController.currentFeature.add(searchController.searchResults[index]); + indexController.currentFeature.add(suggestion); Get.back(); showModalBottomSheet( isScrollControlled: true, @@ -58,11 +63,35 @@ class SearchPage extends StatelessWidget { //builder: (context) => BottomSheetWidget(), builder:((context) => BottomSheetNew()) ); - }, - ); - }, + }, + ), + //title: const CupertinoSearchTextField(), + ), - //) + //body: + // Obx(() => + // ListView.builder( + // itemCount: searchController.searchResults.length, + // itemBuilder: (context, index){ + // return ListTile( + // title: searchController.searchResults[index].properties!["location_name"] != null ? Text(searchController.searchResults[index].properties!["location_name"]) : Text(""), + // subtitle: searchController.searchResults[index].properties!["category"] != null ? Text(searchController.searchResults[index].properties!["category"]) : Text(""), + // leading: getImage(index), + // onTap: (){ + // indexController.currentFeature.clear(); + // indexController.currentFeature.add(searchController.searchResults[index]); + // Get.back(); + // showModalBottomSheet( + // isScrollControlled: true, + // context: context, + // //builder: (context) => BottomSheetWidget(), + // builder:((context) => BottomSheetNew()) + // ); + // }, + // ); + // }, + // ), + // ) ); } } \ No newline at end of file diff --git a/pubspec.lock b/pubspec.lock index 844e8a7..839f757 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -125,6 +125,27 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "4.1.0" + flutter_keyboard_visibility: + dependency: transitive + description: + name: flutter_keyboard_visibility + url: "https://pub.dartlang.org" + source: hosted + version: "5.3.0" + flutter_keyboard_visibility_platform_interface: + dependency: transitive + description: + name: flutter_keyboard_visibility_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" + flutter_keyboard_visibility_web: + dependency: transitive + description: + name: flutter_keyboard_visibility_web + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" flutter_lints: dependency: "direct dev" description: @@ -179,6 +200,13 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_typeahead: + dependency: "direct main" + description: + name: flutter_typeahead + url: "https://pub.dartlang.org" + source: hosted + version: "4.0.0" flutter_web_plugins: dependency: transitive description: flutter diff --git a/pubspec.yaml b/pubspec.yaml index 8d29b16..155dfbc 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -65,6 +65,7 @@ dependencies: #flutter_map_marker_popup: any flutter_polyline_points: ^1.0.0 google_maps_webservice: ^0.0.19 + flutter_typeahead: ^4.0.0 dev_dependencies: