update for flutter_map

This commit is contained in:
Mohamed Nouffer
2022-12-13 18:19:16 +05:30
parent 244b7eb9ac
commit e9bf50fc14
51 changed files with 2701 additions and 4007 deletions

View File

@ -1,9 +1,9 @@
import 'package:get/get.dart';
import 'package:rogapp/pages/search/search_controller.dart';
// import 'package:get/get.dart';
// import 'package:rogapp/pages/search/search_controller.dart';
class SearchBinding extends Bindings {
@override
void dependencies() {
Get.put<SearchController>(SearchController());
}
}
// class SearchBinding extends Bindings {
// @override
// void dependencies() {
// Get.put<SearchController>(SearchController());
// }
// }

View File

@ -1,26 +1,26 @@
import 'package:flutter/material.dart';
import 'package:geojson/geojson.dart';
import 'package:get/get.dart';
import 'package:get/get_state_manager/get_state_manager.dart';
import 'package:rogapp/model/destination.dart';
import 'package:rogapp/pages/index/index_controller.dart';
// import 'package:flutter/material.dart';
// import 'package:geojson/geojson.dart';
// import 'package:get/get.dart';
// import 'package:get/get_state_manager/get_state_manager.dart';
// import 'package:rogapp/model/destination.dart';
// import 'package:rogapp/pages/index/index_controller.dart';
class SearchController extends GetxController {
// class SearchController extends GetxController {
List<GeoJsonFeature> searchResults = <GeoJsonFeature>[].obs;
// List<GeoJsonFeature> searchResults = <GeoJsonFeature>[].obs;
@override
void onInit() {
IndexController indexController = Get.find<IndexController>();
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();
}
// @override
// void onInit() {
// IndexController indexController = Get.find<IndexController>();
// 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();
// }
}
// }

View File

@ -1,96 +1,96 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_typeahead/flutter_typeahead.dart';
import 'package:get/get.dart';
import 'package:rogapp/pages/index/index_controller.dart';
import 'package:rogapp/pages/search/search_controller.dart';
import 'package:rogapp/widgets/bottom_sheet_new.dart';
// import 'package:flutter/cupertino.dart';
// import 'package:flutter/material.dart';
// import 'package:flutter_typeahead/flutter_typeahead.dart';
// import 'package:get/get.dart';
// import 'package:rogapp/pages/index/index_controller.dart';
// import 'package:rogapp/pages/search/search_controller.dart';
// import 'package:rogapp/widgets/bottom_sheet_new.dart';
class SearchPage extends StatelessWidget {
SearchPage({Key? key}) : super(key: key);
// class SearchPage extends StatelessWidget {
// SearchPage({Key? key}) : super(key: key);
SearchController searchController = Get.find<SearchController>();
IndexController indexController = Get.find<IndexController>();
// SearchController searchController = Get.find<SearchController>();
// IndexController indexController = Get.find<IndexController>();
Image getImage(int index){
if(searchController.searchResults[index].properties!["photos"] == null || searchController.searchResults[index].properties!["photos"] == ""){
return Image(image: AssetImage('assets/images/empty_image.png'));
}
else{
return Image(
image: NetworkImage(searchController.searchResults[index].properties!["photos"]),
errorBuilder: (BuildContext context, Object exception, StackTrace? stackTrace) {
return Image.asset("assets/images/empty_image.png");
},
);
}
}
// Image getImage(int index){
// if(searchController.searchResults[index].properties!["photos"] == null || searchController.searchResults[index].properties!["photos"] == ""){
// return Image(image: AssetImage('assets/images/empty_image.png'));
// }
// else{
// return Image(
// image: NetworkImage(searchController.searchResults[index].properties!["photos"]),
// errorBuilder: (BuildContext context, Object exception, StackTrace? stackTrace) {
// return Image.asset("assets/images/empty_image.png");
// },
// );
// }
// }
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
elevation: 0,
backgroundColor: Colors.white,
leading: IconButton(
onPressed:(){
Navigator.pop(context);
},
icon: const Icon(Icons.arrow_back_ios_new, color: Colors.black,)),
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(suggestion);
Get.back();
showModalBottomSheet(
isScrollControlled: true,
context: context,
//builder: (context) => BottomSheetWidget(),
builder:((context) => BottomSheetNew())
);
},
),
//title: const CupertinoSearchTextField(),
// @override
// Widget build(BuildContext context) {
// return Scaffold(
// appBar: AppBar(
// elevation: 0,
// backgroundColor: Colors.white,
// leading: IconButton(
// onPressed:(){
// Navigator.pop(context);
// },
// icon: const Icon(Icons.arrow_back_ios_new, color: Colors.black,)),
// 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(suggestion);
// Get.back();
// showModalBottomSheet(
// isScrollControlled: true,
// context: context,
// //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())
// );
// },
// );
// },
// ),
// )
);
}
}
// ),
// //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())
// // );
// // },
// // );
// // },
// // ),
// // )
// );
// }
// }