change modes

This commit is contained in:
Mohamed Nouffer
2022-07-09 22:51:34 +05:30
parent 131a8995e0
commit ce105a6754
22 changed files with 828 additions and 293 deletions

View File

@ -7,7 +7,9 @@ import 'package:flutter_polyline_points/flutter_polyline_points.dart';
import 'package:geojson/geojson.dart';
import 'package:get/get.dart';
import 'package:latlong2/latlong.dart';
import 'package:rogapp/model/destination.dart';
import 'package:rogapp/pages/destination/destination_binding.dart';
import 'package:rogapp/pages/destination/destination_controller.dart';
import 'package:rogapp/pages/destination/destination_page.dart';
import 'package:rogapp/pages/destination_map/destination_map_page.dart';
import 'package:rogapp/routes/app_pages.dart';
@ -16,10 +18,12 @@ import 'package:rogapp/services/auth_service.dart';
import 'package:rogapp/services/cat_service.dart';
import 'package:rogapp/services/location_service.dart';
import 'package:rogapp/services/perfecture_service.dart';
import 'package:rogapp/utils/database_helper.dart';
class IndexController extends GetxController {
List<GeoJsonFeatureCollection> locations = <GeoJsonFeatureCollection>[].obs;
List<GeoJsonFeature> currentFeature = <GeoJsonFeature>[].obs;
List<Destination> currentDestinationFeature = <Destination>[].obs;
List<dynamic> perfectures = <dynamic>[].obs;
List<LatLngBounds> currentBound = <LatLngBounds>[].obs;
List<dynamic> subPerfs = <dynamic>[].obs;
@ -35,14 +39,17 @@ class IndexController extends GetxController {
var is_loading = false.obs;
var is_mapController_loaded = false.obs;
var is_rog_mapcontroller_loaded = false.obs;
MapController? mapController;
MapController? rogMapController;
var mode = 0.obs;
var rog_mode = 0.obs;
var rog_mode = 1.obs;
var desination_mode = 0.obs;
var desination_mode = 1.obs;
String dropdownValue = "9";
@ -74,13 +81,14 @@ class IndexController extends GetxController {
switch (page) {
case AppPages.INITIAL :{
rog_mode.value = 0;
print("-- rog mode is ctrl is ${rog_mode.value}");
Get.toNamed(page);
}
break;
case AppPages.TRAVEL : {
rog_mode.value = 1;
Get.toNamed(page);
//Get.off(DestinationPage(), binding: DestinationBinding());
//Get.back();
Get.off(DestinationPage(), binding: DestinationBinding());
}
break;
@ -161,7 +169,13 @@ void login(String email, String password, BuildContext context){
if(currentFeature.isNotEmpty){
getAction();
}
Get.toNamed(AppPages.INITIAL);
if(rog_mode.value == 1){
switchPage(AppPages.TRAVEL);
}
else{
switchPage(AppPages.INITIAL);
}
//Get.toNamed(AppPages.INITIAL);
}else{
is_loading.value = false;
Get.snackbar(
@ -466,7 +480,13 @@ void login(String email, String password, BuildContext context){
}
void makeNext(GeoJsonFeature fs){
GeoJsonFeature<GeoJsonMultiPoint> pt = fs as GeoJsonFeature<GeoJsonMultiPoint>;
if(rog_mode == 1){
DestinationController destinationController = Get.find<DestinationController>();
print("---- destination index--- ${destinationController.destination_index_data} --------");
}
else {
GeoJsonFeature<GeoJsonMultiPoint> pt = fs as GeoJsonFeature<GeoJsonMultiPoint>;
for(int i=0; i<= locations[0].collection.length - 1; i++){
GeoJsonMultiPoint p = locations[0].collection[i].geometry as GeoJsonMultiPoint;
@ -486,34 +506,43 @@ void login(String email, String password, BuildContext context){
}
}
}
}
}
void makePrevious(GeoJsonFeature fs){
GeoJsonFeature<GeoJsonMultiPoint> pt = fs as GeoJsonFeature<GeoJsonMultiPoint>;
for(int i=0; i<= locations[0].collection.length - 1; i++){
GeoJsonMultiPoint p = locations[0].collection[i].geometry as GeoJsonMultiPoint;
if(rog_mode == 1){
DestinationController destinationController = Get.find<DestinationController>();
print("---- destination index--- ${destinationController.destination_index_data} --------");
}
else {
if(p.geoSerie!.geoPoints[0].latitude == pt.geometry!.geoSerie!.geoPoints[0].latitude && p.geoSerie!.geoPoints[0].longitude == pt.geometry!.geoSerie!.geoPoints[0].longitude ){
if(currentFeature.length > 0){
currentFeature.clear();
}
if(i == 0 ){
currentFeature.add(locations[0].collection[locations[0].collection.length -1] as GeoJsonFeature);
getAction();
}
else{
currentFeature.add(locations[0].collection[i - 1] as GeoJsonFeature);
getAction();
}
GeoJsonFeature<GeoJsonMultiPoint> pt = fs as GeoJsonFeature<GeoJsonMultiPoint>;
for(int i=0; i<= locations[0].collection.length - 1; i++){
GeoJsonMultiPoint p = locations[0].collection[i].geometry as GeoJsonMultiPoint;
if(p.geoSerie!.geoPoints[0].latitude == pt.geometry!.geoSerie!.geoPoints[0].latitude && p.geoSerie!.geoPoints[0].longitude == pt.geometry!.geoSerie!.geoPoints[0].longitude ){
if(currentFeature.length > 0){
currentFeature.clear();
}
if(i == 0 ){
currentFeature.add(locations[0].collection[locations[0].collection.length -1] as GeoJsonFeature);
getAction();
}
else{
currentFeature.add(locations[0].collection[i - 1] as GeoJsonFeature);
getAction();
}
}
}
}
}
}

View File

@ -23,8 +23,14 @@ class IndexPage extends GetView<IndexController> {
return Scaffold(
drawer: const DrawerPage(),
appBar: AppBar(
leading: IconButton(
icon: Icon(Icons.arrow_back_ios),
onPressed: (){
indexController.switchPage(AppPages.TRAVEL);
},
),
automaticallyImplyLeading: false,
title: Text("app_title".tr),
title: Text("Add locations"),
actions: [
CatWidget(indexController: indexController,),
],
@ -36,14 +42,7 @@ class IndexPage extends GetView<IndexController> {
Expanded(child: IconButton(icon: const Icon(Icons.camera_enhance), onPressed: (){},),),
const Expanded(child: Text('')),
Expanded(child: IconButton(icon: const Icon(Icons.travel_explore), onPressed: (){
if(indexController.currentUser.isNotEmpty){
indexController.switchPage(AppPages.TRAVEL);
//Get.toNamed(AppPages.TRAVEL);
}
else{
indexController.switchPage(AppPages.LOGIN);
//Get.toNamed(AppPages.LOGIN);
}
indexController.switchPage(AppPages.TRAVEL);
}),),
],
),
@ -71,12 +70,15 @@ class IndexPage extends GetView<IndexController> {
height: 50.0,
child: SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Row(
child: Obx(() =>
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
BreadCrumbWidget(),
indexController.is_mapController_loaded.value == false ?
Center(child: CircularProgressIndicator())
:
BreadCrumbWidget(mapController: indexController.mapController),
Container(width: 24.0,),
Obx(()=>
Row(
children: [
indexController.currentCat.isNotEmpty ? Text(indexController.currentCat[0].toString()): Text(""),
@ -91,8 +93,8 @@ class IndexPage extends GetView<IndexController> {
Container(width: 0, height: 0,)
],
)
),
],
)
),
),
),