update new features and flutter 3.13

This commit is contained in:
Mohamed Nouffer
2023-09-04 22:46:53 +05:30
parent 2ab96cc3d0
commit 3f157d7ddf
22 changed files with 2160 additions and 1703 deletions

View File

@ -20,6 +20,7 @@ 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';
import 'package:shared_preferences/shared_preferences.dart';
class IndexController extends GetxController {
List<GeoJsonFeatureCollection> locations = <GeoJsonFeatureCollection>[].obs;
@ -51,6 +52,8 @@ class IndexController extends GetxController {
MapController mapController = MapController();
MapController rogMapController = MapController();
String? userToken;
var mode = 0.obs;
// master mode, rog or selection
@ -191,50 +194,27 @@ List<LatLng> getLocationsList(){
}
void login(String email, String password, BuildContext context){
AuthService.login(email, password).then((value){
void login(String email, String password, BuildContext context) {
AuthService.login(email, password).then((value) {
print("------- logged in user details ######## $value ###### --------");
if(value.isNotEmpty){
currentUser.clear();
currentUser.add(value);
is_loading.value = false;
Navigator.pop(context);
loadUserDetails();
loadLocationsBound();
cats.clear();
if(currentFeature.isNotEmpty){
getAction();
}
if(currentUser.isNotEmpty){
rog_mode.value = 0 ;
}
else{
rog_mode.value = 1;
}
if(rog_mode.value == 1){
switchPage(AppPages.TRAVEL);
}
else{
switchPage(AppPages.INITIAL);
}
//Get.toNamed(AppPages.INITIAL);
}else{
if (value.isNotEmpty) {
Navigator.pop(context);
print("--------- user details login ----- $value");
changeUser(value);
} else {
is_loading.value = false;
Get.snackbar(
"Failed",
"User login failed, please try again.",
icon: const Icon(Icons.error, size: 40.0, color: Colors.blue),
snackPosition: SnackPosition.TOP,
duration: const Duration(milliseconds: 800),
backgroundColor: Colors.yellow,
//icon:Image(image:AssetImage("assets/images/dora.png"))
);
}
});
}
"Failed",
"User login failed, please try again.",
icon: const Icon(Icons.error, size: 40.0, color: Colors.blue),
snackPosition: SnackPosition.TOP,
duration: const Duration(milliseconds: 800),
backgroundColor: Colors.yellow,
//icon:Image(image:AssetImage("assets/images/dora.png"))
);
}
});
}
void changePassword(String oldpassword, String newpassword, BuildContext context){
String _token = currentUser[0]['token'];
@ -407,6 +387,58 @@ void login(String email, String password, BuildContext context){
}
}
void saveToDevice(String val) async {
final SharedPreferences prefs = await SharedPreferences.getInstance();
await prefs.setString("user_token", val);
}
void changeUser(Map<String, dynamic> value, {bool replace = true}) {
print("---- change user to ${value} -----");
currentUser.clear();
currentUser.add(value);
if(replace){
saveToDevice(currentUser[0]["token"]);
}
is_loading.value = false;
loadUserDetails();
loadLocationsBound();
cats.clear();
if (currentFeature.isNotEmpty) {
getAction();
}
if (currentUser.isNotEmpty) {
rog_mode.value = 0;
} else {
rog_mode.value = 1;
}
if (rog_mode.value == 1) {
switchPage(AppPages.TRAVEL);
} else {
switchPage(AppPages.INITIAL);
}
//Get.toNamed(AppPages.INITIAL);
}
loadUserDetailsForToken(String token) async {
AuthService.userForToken(token).then((value) {
print("----token val-- $value ------");
if(value![0]["user"].isEmpty){
Get.toNamed(AppPages.LOGIN);
return;
}
changeUser(value[0], replace:false);
print("--------- user details ----- $value");
// if (value != null && value.isNotEmpty) {
// bool paid = value[0]["paid"] as bool;
// if (paid) {
// loadCustomAreas();
// }
// }
});
}
void loadCustomAreas(){
customAreas.clear();

View File

@ -1,4 +1,3 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:rogapp/pages/destination/destination_controller.dart';
@ -8,12 +7,12 @@ import 'package:rogapp/routes/app_pages.dart';
import 'package:rogapp/widgets/list_widget.dart';
import 'package:rogapp/widgets/map_widget.dart';
class IndexPage extends GetView<IndexController> {
IndexPage({Key? key}) : super(key: key);
final IndexController indexController = Get.find<IndexController>();
final DestinationController destinationController = Get.find<DestinationController>();
final DestinationController destinationController =
Get.find<DestinationController>();
@override
Widget build(BuildContext context) {
@ -21,39 +20,47 @@ class IndexPage extends GetView<IndexController> {
onWillPop: () async => false,
child: Scaffold(
drawer: DrawerPage(),
appBar: AppBar(
// automaticallyImplyLeading: false,
// leading: IconButton(
// icon: Icon(Icons.arrow_back_ios),
// onPressed: (){
// indexController.switchPage(AppPages.TRAVEL);
// },
// ),
//automaticallyImplyLeading: false,
title: Text("add_location".tr),
actions: [
IconButton(
onPressed: (){
destinationController.fixMapBound();
},
icon: const Icon(Icons.refresh)
),
InkWell(
onTap: (){
Get.toNamed(AppPages.SEARCH);
},
child: Container(
height: 32,
width: 75,
decoration: BoxDecoration(
color: Colors.blue,
borderRadius: BorderRadius.circular(25),
),
child: const Center(child: Icon(Icons.search),),
),
appBar: AppBar(
// automaticallyImplyLeading: false,
// leading: IconButton(
// icon: Icon(Icons.arrow_back_ios),
// onPressed: (){
// indexController.switchPage(AppPages.TRAVEL);
// },
// ),
//automaticallyImplyLeading: false,
title: Text("add_location".tr),
actions: [
IconButton(
onPressed: () {
Get.toNamed(AppPages.HISTORY);
},
icon: const Icon(Icons.history)),
IconButton(
onPressed: () {
final tk = indexController.currentUser[0]["token"];
if (tk != null) {
destinationController.fixMapBound(tk);
}
},
icon: const Icon(Icons.refresh)),
InkWell(
onTap: () {
Get.toNamed(AppPages.SEARCH);
},
child: Container(
height: 32,
width: 75,
decoration: BoxDecoration(
color: Colors.blue,
borderRadius: BorderRadius.circular(25),
),
//CatWidget(indexController: indexController,),
child: const Center(
child: Icon(Icons.search),
),
),
),
//CatWidget(indexController: indexController,),
],
),
bottomNavigationBar: BottomAppBar(
@ -61,49 +68,57 @@ class IndexPage extends GetView<IndexController> {
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
Padding(
padding: const EdgeInsets.only(right: 10.0, top: 4.0, bottom: 4.0),
padding:
const EdgeInsets.only(right: 10.0, top: 4.0, bottom: 4.0),
child: InkWell(
child:
Obx(() =>
destinationController.is_gps_selected == true ?
Padding(
padding: const EdgeInsets.only(right: 10.0, top: 4.0, bottom: 4.0),
child: InkWell(
child: const Image(image: AssetImage('assets/images/route3_off.png'), width: 35, height: 35,),
onTap: (){
//indexController.switchPage(AppPages.TRAVEL);
},
),
) :
Padding(
padding: const EdgeInsets.only(right: 10.0, top: 4.0, bottom: 4.0),
child: InkWell(
child: const Image(image: AssetImage('assets/images/route2_on.png'),width: 35, height: 35,),
onTap: (){
//indexController.switchPage(AppPages.TRAVEL);
},
),
)
)
),
child:
Obx(() => destinationController.is_gps_selected == true
? Padding(
padding: const EdgeInsets.only(
right: 10.0, top: 4.0, bottom: 4.0),
child: InkWell(
child: const Image(
image: AssetImage(
'assets/images/route3_off.png'),
width: 35,
height: 35,
),
onTap: () {
//indexController.switchPage(AppPages.TRAVEL);
},
),
)
: Padding(
padding: const EdgeInsets.only(
right: 10.0, top: 4.0, bottom: 4.0),
child: InkWell(
child: const Image(
image: AssetImage(
'assets/images/route2_on.png'),
width: 35,
height: 35,
),
onTap: () {
//indexController.switchPage(AppPages.TRAVEL);
},
),
))),
),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: (){
onPressed: () {
indexController.toggleMode();
if(indexController.currentCat.isNotEmpty){
print(indexController.currentCat[0].toString());
}
if (indexController.currentCat.isNotEmpty) {
print(indexController.currentCat[0].toString());
}
},
tooltip: 'Increment',
child: Obx(() =>
indexController.mode == 0 ?
const Image(image: AssetImage('assets/images/list2.png'))
:
const Image(image: AssetImage('assets/images/map.png')),
child: Obx(
() => indexController.mode == 0
? const Image(image: AssetImage('assets/images/list2.png'))
: const Image(image: AssetImage('assets/images/map.png')),
),
elevation: 4.0,
),
@ -129,11 +144,11 @@ class IndexPage extends GetView<IndexController> {
// // ),
// child: SingleChildScrollView(
// scrollDirection: Axis.horizontal,
// child: Obx(() =>
// child: Obx(() =>
// Row(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
// children: [
// indexController.is_mapController_loaded.value == false ?
// indexController.is_mapController_loaded.value == false ?
// Center(child: CircularProgressIndicator())
// :
// BreadCrumbWidget(mapController: indexController.mapController),
@ -146,7 +161,7 @@ class IndexPage extends GetView<IndexController> {
// // onPressed: (){
// // indexController.currentCat.clear();
// // indexController.loadLocationsBound();
// // },
// // },
// // icon: Icon(Icons.cancel, color: Colors.red,)
// // ) :
// // Container(width: 0, height: 0,)
@ -158,18 +173,15 @@ class IndexPage extends GetView<IndexController> {
// ),
// ),
Expanded(
child: Obx(() =>
indexController.mode == 0 ?
MapWidget() :
const ListWidget(),
)
)
child: Obx(
() => indexController.mode == 0
? MapWidget()
: const ListWidget(),
))
],
),
),
),
);
}
}
}