jira fixes

merge-requests/111/head
ibrahim albitar 6 years ago
parent 937f8ecd6a
commit 4638ba56a2

@ -1,6 +1,6 @@
const MAX_SMALL_SCREEN = 660; const MAX_SMALL_SCREEN = 660;
const ONLY_NUMBERS = "[0-9]"; const ONLY_NUMBERS = "[0-9]";
const ONLY_LETTERS = "[a-zA-Z]"; const ONLY_LETTERS = "[a-zA-Z &'\"]";
const ONLY_DATE = "[0-9/]"; const ONLY_DATE = "[0-9/]";
const BASE_URL = 'https://hmgwebservices.com/Services/'; const BASE_URL = 'https://hmgwebservices.com/Services/';
//const BASE_URL = 'https://uat.hmgwebservices.com/Services/'; //const BASE_URL = 'https://uat.hmgwebservices.com/Services/';

@ -11,7 +11,6 @@ import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_text_form_field.dart'; import 'package:doctor_app_flutter/widgets/shared/app_text_form_field.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/dr_app_circular_progress_Indeicator.dart'; import 'package:doctor_app_flutter/widgets/shared/dr_app_circular_progress_Indeicator.dart';
import 'package:doctor_app_flutter/widgets/shared/rounded_container_widget.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import '../../util/extenstions.dart'; import '../../util/extenstions.dart';
@ -61,9 +60,6 @@ class _MedicineSearchState extends State<MedicineSearchScreen> {
hintText: 'Search Medicine Name Here..', hintText: 'Search Medicine Name Here..',
controller: myController, controller: myController,
onSaved: (value) {}, onSaved: (value) {},
// validator: (value) {
// return TextValidator().validateName(value);
// },
inputFormatter: ONLY_LETTERS), inputFormatter: ONLY_LETTERS),
), ),
@ -99,7 +95,7 @@ class _MedicineSearchState extends State<MedicineSearchScreen> {
), ),
Expanded( Expanded(
child: Container( child: Container(
width: SizeConfig.screenWidth * 0.80, width: SizeConfig.screenWidth * 0.97,
child: !_medicineProvider.isFinished child: !_medicineProvider.isFinished
? DrAppCircularProgressIndeicator() ? DrAppCircularProgressIndeicator()
: _medicineProvider.hasError : _medicineProvider.hasError
@ -127,7 +123,7 @@ class _MedicineSearchState extends State<MedicineSearchScreen> {
builder: (context) => ChangeNotifierProvider( builder: (context) => ChangeNotifierProvider(
create: (_) => MedicineProvider(), create: (_) => MedicineProvider(),
child: PharmaciesListScreen( child: PharmaciesListScreen(
itemID: data[index]["ItemID"]), itemID: data[index]["ItemID"], url: data[index]["ProductImageBase64"]),
), ),
), ),
); );

@ -1,11 +1,10 @@
import 'package:doctor_app_flutter/config/config.dart'; import 'dart:convert';
import 'dart:typed_data';
import 'package:doctor_app_flutter/config/size_config.dart'; import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/models/pharmacies_List_request_model.dart';
import 'package:doctor_app_flutter/providers/medicine_provider.dart'; import 'package:doctor_app_flutter/providers/medicine_provider.dart';
import 'package:doctor_app_flutter/util/dr_app_shared_pref.dart'; import 'package:doctor_app_flutter/util/dr_app_shared_pref.dart';
import 'package:doctor_app_flutter/util/helpers.dart'; import 'package:doctor_app_flutter/util/helpers.dart';
import 'package:doctor_app_flutter/widgets/medicine/medicine_item_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_buttons_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/dr_app_circular_progress_Indeicator.dart'; import 'package:doctor_app_flutter/widgets/shared/dr_app_circular_progress_Indeicator.dart';
@ -20,8 +19,11 @@ DrAppSharedPreferances sharedPref = DrAppSharedPreferances();
class PharmaciesListScreen extends StatefulWidget { class PharmaciesListScreen extends StatefulWidget {
final int itemID; final int itemID;
final String url;
// In the constructor, require a item id. // In the constructor, require a item id.
PharmaciesListScreen({Key key, @required this.itemID}) : super(key: key); PharmaciesListScreen({Key key, @required this.itemID, this.url})
: super(key: key);
@override @override
_PharmaciesListState createState() => _PharmaciesListState(); _PharmaciesListState createState() => _PharmaciesListState();
@ -61,44 +63,77 @@ class _PharmaciesListState extends State<PharmaciesListScreen> {
TextStyle(color: Theme.of(context).errorColor), TextStyle(color: Theme.of(context).errorColor),
), ),
) )
: Column( : StreamBuilder<Object>(
mainAxisAlignment: MainAxisAlignment.start, stream: null,
crossAxisAlignment: CrossAxisAlignment.stretch, builder: (context, snapshot) {
children: <Widget>[ return Row(
AppText( children: <Widget>[
"Description", Expanded(
margin: 10, flex: 1,
fontWeight: FontWeight.bold, child: ClipRRect(
), borderRadius:
AppText( BorderRadius.all(Radius.circular(7)),
_data[0]["ItemDescription"], child: Image.memory(
marginLeft: 10, dataFromBase64String(widget.url),
marginTop: 0, height: SizeConfig.imageSizeMultiplier * 21,
marginRight: 10, width: SizeConfig.imageSizeMultiplier * 20,
marginBottom: 10, fit: BoxFit.cover,
), ),
AppText( ),
"Price", ),
margin: 10, Expanded(
fontWeight: FontWeight.bold, flex: 3,
), child: Column(
AppText( mainAxisAlignment: MainAxisAlignment.start,
_data[0]["SellingPrice"].toString(), crossAxisAlignment:
marginLeft: 10, CrossAxisAlignment.stretch,
marginTop: 0, children: <Widget>[
marginRight: 10, AppText(
marginBottom: 10, "Description",
), marginLeft: 10,
], marginTop: 0,
)), marginRight: 10,
marginBottom: 2,
fontWeight: FontWeight.bold,
),
AppText(
_data[0]["ItemDescription"],
marginLeft: 10,
marginTop: 0,
marginRight: 10,
marginBottom: 10,
),
AppText(
"Price",
marginLeft: 10,
marginTop: 0,
marginRight: 10,
marginBottom: 2,
fontWeight: FontWeight.bold,
),
AppText(
_data[0]["SellingPrice"].toString(),
marginLeft: 10,
marginTop: 0,
marginRight: 10,
marginBottom: 10,
),
],
),
)
],
);
})),
Container( Container(
margin: EdgeInsets.all(SizeConfig.widthMultiplier * 5), margin: EdgeInsets.only(top:SizeConfig.widthMultiplier * 2,
bottom: SizeConfig.widthMultiplier * 2,
right: SizeConfig.widthMultiplier * 4,
left: SizeConfig.widthMultiplier * 4,),
child: Align( child: Align(
alignment: Alignment.centerLeft, alignment: Alignment.centerLeft,
child: AppText( child: AppText(
"You can Find it in", "You can Find it in",
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
fontSize: SizeConfig.textMultiplier * 3,
))), ))),
Expanded( Expanded(
child: Container( child: Container(
@ -114,7 +149,8 @@ class _PharmaciesListState extends State<PharmaciesListScreen> {
Expanded( Expanded(
flex: 1, flex: 1,
child: ClipRRect( child: ClipRRect(
borderRadius:BorderRadius.all(Radius.circular(7)), borderRadius:
BorderRadius.all(Radius.circular(7)),
child: Image.network( child: Image.network(
_data[index]["ProjectImageURL"], _data[index]["ProjectImageURL"],
height: SizeConfig.imageSizeMultiplier * 15, height: SizeConfig.imageSizeMultiplier * 15,
@ -138,25 +174,36 @@ class _PharmaciesListState extends State<PharmaciesListScreen> {
crossAxisAlignment: WrapCrossAlignment.end, crossAxisAlignment: WrapCrossAlignment.end,
children: <Widget>[ children: <Widget>[
Padding( Padding(
padding: EdgeInsets.all(5), padding: EdgeInsets.all(5),
child: InkWell(child: Icon(Icons.call, color: Colors.red,),onTap: ()=>launch( child: InkWell(
"tel://" + _data[index]["PhoneNumber"]),), child: Icon(
), Icons.call,
Padding( color: Colors.red,
padding: EdgeInsets.all(5), ),
child: InkWell(child: Icon(Icons.pin_drop, color: Colors.red,),onTap: () { onTap: () => launch(
MapsLauncher.launchCoordinates( "tel://" + _data[index]["PhoneNumber"]),
double.parse(_data[index]["Latitude"]), ),
double.parse(_data[index]["Longitude"]), ),
_data[index]["LocationDescription"]); Padding(
},), padding: EdgeInsets.all(5),
), child: InkWell(
child: Icon(
Icons.pin_drop,
color: Colors.red,
),
onTap: () {
MapsLauncher.launchCoordinates(
double.parse(
_data[index]["Latitude"]),
double.parse(
_data[index]["Longitude"]),
_data[index]["LocationDescription"]);
},
),
),
], ],
), ),
), ),
], ],
), ),
); );
@ -170,9 +217,20 @@ Padding(
_medicineProvider.getPharmaciesList(widget.itemID).then((result) { _medicineProvider.getPharmaciesList(widget.itemID).then((result) {
this.setState(() { this.setState(() {
_data = _medicineProvider.pharmaciesList; _data = _medicineProvider.pharmaciesList;
//if(_data == null || _data.length == 0)
}); });
}); });
return true; return true;
} }
Image imageFromBase64String(String base64String) {
return Image.memory(base64Decode(base64String));
}
Uint8List dataFromBase64String(String base64String) {
return base64Decode(base64String);
}
String base64String(Uint8List data) {
return base64Encode(data);
}
} }

@ -1,10 +1,6 @@
import 'dart:convert'; import 'dart:convert';
import 'dart:typed_data'; import 'dart:typed_data';
import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/config/size_config.dart'; import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/widgets/shared/profile_image_widget.dart';
import '../shared/rounded_container_widget.dart'; import '../shared/rounded_container_widget.dart';
import '../shared/app_texts_widget.dart'; import '../shared/app_texts_widget.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';

Loading…
Cancel
Save