Files
rog_app/lib/pages/destination/destination_page.dart

198 lines
8.1 KiB
Dart
Raw Normal View History

2022-05-12 02:17:08 +05:30
import 'dart:developer';
2022-10-12 21:46:17 +05:30
import 'dart:io';
2022-05-12 02:17:08 +05:30
2022-10-12 21:46:17 +05:30
import 'package:camera_camera/camera_camera.dart';
2022-05-12 02:17:08 +05:30
import 'package:flutter/material.dart';
2022-06-04 20:16:29 +05:30
import 'package:geolocator/geolocator.dart';
2022-05-12 02:17:08 +05:30
import 'package:get/get.dart';
2022-06-04 20:16:29 +05:30
import 'package:latlong2/latlong.dart';
2022-10-12 21:46:17 +05:30
import 'package:rogapp/pages/camera/camera_page.dart';
2022-05-12 02:17:08 +05:30
import 'package:rogapp/pages/destination/destination_controller.dart';
2022-05-24 20:43:41 +05:30
import 'package:rogapp/pages/destination_map/destination_map_page.dart';
2022-07-28 19:01:45 +05:30
import 'package:rogapp/pages/drawer/drawer_page.dart';
2022-05-12 02:17:08 +05:30
import 'package:rogapp/pages/index/index_controller.dart';
import 'package:rogapp/routes/app_pages.dart';
2022-05-24 20:43:41 +05:30
import 'package:rogapp/widgets/destination_widget.dart';
2022-05-12 02:17:08 +05:30
import 'package:timeline_tile/timeline_tile.dart';
2022-09-22 20:36:56 +05:30
class DestnationPage extends StatelessWidget {
DestnationPage({Key? key}) : super(key: key);
2022-05-12 02:17:08 +05:30
final DestinationController destinationController = Get.find<DestinationController>();
final IndexController indexController = Get.find<IndexController>();
final List<int> _items = List<int>.generate(50, (int index) => index);
2022-06-04 20:16:29 +05:30
Future<void> showCurrentPosition() async {
LocationPermission permission = await Geolocator.checkPermission();
if (permission != LocationPermission.whileInUse ||
permission != LocationPermission.always) {
permission = await Geolocator.requestPermission();
}
Position position = await Geolocator.getCurrentPosition(
desiredAccuracy: LocationAccuracy.high);
indexController.rogMapController?.move(LatLng(position.latitude, position.longitude), 14);
}
2022-05-12 02:17:08 +05:30
Image getImage(int index){
2022-07-09 22:51:34 +05:30
if(destinationController.destinations[index].photos == null || destinationController.destinations[index].photos == ""){
2022-05-12 02:17:08 +05:30
return Image(image: AssetImage('assets/images/empty_image.png'));
}
else{
2022-07-09 22:51:34 +05:30
return Image(image: NetworkImage(destinationController.destinations[index].photos!));
2022-05-12 02:17:08 +05:30
}
}
2022-09-22 20:36:56 +05:30
Widget getRoutingImage(int route){
switch (route) {
case 0:
return Image(image: AssetImage('assets/images/p4_9_man.png'), width: 35.0,);
case 1:
return Image(image: AssetImage('assets/images/p4_8_car.png'), width: 35.0,);
case 2:
return Image(image: AssetImage('assets/images/p4_10_train.png'), width: 35.0,);
default:
return Image(image: AssetImage('assets/images/p4_9_man.png'), width: 35.0,);
}
2022-06-14 14:37:59 +05:30
}
2022-09-22 20:36:56 +05:30
@override
2022-05-12 02:17:08 +05:30
Widget build(BuildContext context) {
final ColorScheme colorScheme = Theme.of(context).colorScheme;
final Color oddItemColor = colorScheme.primary.withOpacity(0.05);
final Color evenItemColor = colorScheme.primary.withOpacity(0.15);
2022-06-27 12:15:54 +05:30
return WillPopScope(
onWillPop: () async {
indexController.switchPage(AppPages.INITIAL);
return false;
},
child: Scaffold(
drawer: DrawerPage(),
2022-06-27 12:15:54 +05:30
bottomNavigationBar: BottomAppBar(
child: Row(
2022-09-22 20:36:56 +05:30
mainAxisAlignment: MainAxisAlignment.spaceBetween,
2022-06-27 12:15:54 +05:30
children: <Widget>[
2022-09-22 20:36:56 +05:30
Padding(
padding: const EdgeInsets.only(left:13.0),
child: InkWell(
child: Obx((() => getRoutingImage(destinationController.travelMode.value))),
onTap: (){
Get.bottomSheet(
Obx(() =>
ListView(
children: [
Padding(
padding: const EdgeInsets.only(top:30.0, bottom: 30),
child: Center(child: Text("select_travel_mode".tr, style: TextStyle(fontSize: 22.0, color:Colors.red, fontWeight:FontWeight.bold),),),
),
ListTile(
selected: destinationController.travelMode == 0 ? true : false,
selectedTileColor: Colors.amber.shade200,
leading: Image(image: AssetImage('assets/images/p4_9_man.png'),),
title: Text("walking".tr),
onTap:(){
destinationController.travelMode.value = 0;
destinationController.PopulateDestinations();
Get.back();
},
),
ListTile(
selected: destinationController.travelMode == 1 ? true : false,
selectedTileColor: Colors.amber.shade200,
leading: Image(image: AssetImage('assets/images/p4_8_car.png'),),
title: Text("driving".tr),
onTap:(){
destinationController.travelMode.value = 1;
destinationController.PopulateDestinations();
Get.back();
},
),
2022-09-29 15:32:33 +05:30
// ListTile(
// selected: destinationController.travelMode == 2 ? true : false,
// selectedTileColor: Colors.amber.shade200,
// leading: Image(image: AssetImage('assets/images/p4_10_train.png'),),
// title: Text("transit".tr),
// onTap:(){
// destinationController.travelMode.value = 2;
// destinationController.PopulateDestinations();
// Get.back();
// },
// ),
2022-09-22 20:36:56 +05:30
],
),
),
isScrollControlled:false,
backgroundColor: Colors.white,
);
//destinationController.PopulateDestinations();
}
),
)
,
IconButton(
icon: const Icon(Icons.travel_explore, size: 35,),
onPressed: (){
indexController.switchPage(AppPages.INITIAL);
}
),
2022-06-27 12:15:54 +05:30
],
),
2022-05-12 02:17:08 +05:30
),
2022-06-27 12:15:54 +05:30
floatingActionButton: FloatingActionButton(
onPressed: (){
//print("######");
indexController.toggleDestinationMode();
},
tooltip: 'Increment',
2022-09-22 20:36:56 +05:30
child: Obx(() =>
indexController.desination_mode == 1 ?
Image(image: AssetImage('assets/images/list2.png'))
:
Image(image: AssetImage('assets/images/map.png'))
),
2022-06-27 12:15:54 +05:30
elevation: 4.0,
),
floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
appBar:AppBar(
2022-07-16 00:08:00 +05:30
automaticallyImplyLeading: true,
2022-07-09 22:51:34 +05:30
title: Text("app_title".tr),
2022-06-27 12:15:54 +05:30
actions: [
2022-10-12 21:46:17 +05:30
// TextButton(
// onPressed: (){
// //destinationController.openCamera(context);
// Get.toNamed(AppPages.CAMERA_PAGE);
// },
// child: Icon(Icons.ac_unit),
// ),
2022-09-22 20:36:56 +05:30
Obx(() =>
2022-07-14 23:10:24 +05:30
ToggleButtons(
disabledColor: Colors.grey.shade200,
selectedColor: Colors.red,
children: <Widget>[
2022-09-22 20:36:56 +05:30
Icon(Icons.explore, size: 35.0,
2022-07-14 23:10:24 +05:30
)],
onPressed: (int index) {
2022-09-22 20:36:56 +05:30
destinationController.isSelected.value = !destinationController.isSelected.value;
2022-07-14 23:10:24 +05:30
},
2022-09-22 20:36:56 +05:30
isSelected: [destinationController.isSelected.value],
2022-07-14 23:10:24 +05:30
),
2022-09-22 20:36:56 +05:30
),
2022-07-14 23:10:24 +05:30
// IconButton(onPressed: (){
// showCurrentPosition();
// },
// icon: Icon(Icons.location_on_outlined))
2022-06-27 12:15:54 +05:30
],
2022-06-04 20:16:29 +05:30
),
2022-06-27 12:15:54 +05:30
body: Obx(() =>
indexController.desination_mode.value == 0 ?
DestinationWidget():
DestinationMapPage()
)
2022-05-24 20:43:41 +05:30
),
2022-05-12 02:17:08 +05:30
);
}
2022-09-22 20:36:56 +05:30
}