You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
109 lines
3.3 KiB
Dart
109 lines
3.3 KiB
Dart
//import 'package:diplomaticquarterapp/pages/BookAppointment/Search.dart';
|
|
import 'package:diplomaticquarterapp/config/size_config.dart';
|
|
import 'package:diplomaticquarterapp/pages/BookAppointment/Search.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:giffy_dialog/giffy_dialog.dart';
|
|
import 'package:url_launcher/url_launcher.dart';
|
|
import 'package:maps_launcher/maps_launcher.dart';
|
|
|
|
|
|
import '../NearestEr.dart';
|
|
|
|
class CardPosition extends StatelessWidget {
|
|
final image;
|
|
final text;
|
|
final subText;
|
|
final type;
|
|
final telephone;
|
|
final networkImage;
|
|
final latitude;
|
|
final longitude;
|
|
final projectname;
|
|
const CardPosition(
|
|
{
|
|
@required this.image,
|
|
@required this.text,
|
|
@required this.subText,
|
|
@required this.type,
|
|
@required this.telephone,
|
|
@required this.networkImage ,
|
|
@required this.latitude,
|
|
@required this.longitude,
|
|
@required this.projectname ,
|
|
});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return GestureDetector(
|
|
onTap: () {
|
|
navigateToSearch(context, this.type,this.telephone,this.networkImage,this.latitude,this.longitude,this.projectname);
|
|
|
|
},
|
|
child: Container(
|
|
width:MediaQuery.of(context).size.width * 0.47,//165,
|
|
margin: EdgeInsets.fromLTRB(7.0, 7.0, 7.0, 7.0),
|
|
decoration: BoxDecoration(boxShadow: [
|
|
BoxShadow(color: Colors.grey[400], blurRadius: 2.0, spreadRadius: 0.0)
|
|
], borderRadius: BorderRadius.circular(10), color: Colors.white),
|
|
child: Column(
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
children: <Widget>[
|
|
Container(
|
|
margin: EdgeInsets.fromLTRB(10.0, 10.0, 10.0, 0.0),
|
|
child: Text(this.text,
|
|
overflow: TextOverflow.clip,
|
|
style: TextStyle(
|
|
color: Colors.black,
|
|
letterSpacing: 1.0,
|
|
fontSize: 2 * SizeConfig.textMultiplier)),
|
|
),
|
|
Container(
|
|
alignment: Alignment.center,
|
|
margin: EdgeInsets.fromLTRB(0.0, 0.0, 10.0, 8.0),
|
|
child: Image.asset(this.image, width: 60.0, height: 60.0),
|
|
),
|
|
Container(
|
|
margin: EdgeInsets.fromLTRB(10.0, 0.0, 10.0, 0.0),
|
|
child: Text(this.subText,
|
|
overflow: TextOverflow.clip,
|
|
style: TextStyle(
|
|
color: Color(0xFFc5272d), letterSpacing: 1.0, fontSize: 15.0)),
|
|
),
|
|
|
|
],
|
|
),
|
|
),
|
|
);
|
|
}
|
|
|
|
Future navigateToSearch(context, type,telephone,networkImage,latitude,longitude,projectname) async {
|
|
|
|
|
|
|
|
|
|
showDialog(
|
|
context: context,builder: (_) => AssetGiffyDialog(
|
|
title: Text(projectname,
|
|
style: TextStyle(
|
|
fontSize: 22.0, fontWeight: FontWeight.w600),
|
|
),image:Image.network(networkImage, fit: BoxFit.cover,),
|
|
|
|
buttonOkText:Text("LOCATION"),
|
|
buttonOkColor: Colors.grey,
|
|
buttonCancelText:Text('CAll') ,
|
|
buttonCancelColor: Colors.grey,
|
|
onOkButtonPressed: () { MapsLauncher.launchCoordinates(double.parse(latitude),double.parse(longitude),projectname);},
|
|
onCancelButtonPressed :() {launch("tel://" +telephone);}
|
|
|
|
|
|
|
|
|
|
) );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|