Merge branch 'master' into aamir_dev

# Conflicts:
#	lib/api/api_client.dart
localization_aamir
Aamir.Muhammad 2 years ago
commit 603fa08c42

@ -75,8 +75,8 @@ class ApiClientImp implements ApiClient {
headers0.addAll(headers); headers0.addAll(headers);
} }
if (!kReleaseMode) { if (!kReleaseMode) {
logger.i("Url:$url"); logger.i(url);
logger.i("body:$jsonObject"); logger.i(jsonEncode(jsonObject.toString()));
} }
var response = await postJsonForResponse(url, jsonObject, token: token, queryParameters: queryParameters, headers: headers0, retryTimes: retryTimes); var response = await postJsonForResponse(url, jsonObject, token: token, queryParameters: queryParameters, headers: headers0, retryTimes: retryTimes);
try { try {
@ -240,8 +240,8 @@ class ApiClientImp implements ApiClient {
} }
if (!kReleaseMode) { if (!kReleaseMode) {
logger.i("Url:$url"); logger.i(url);
logger.i("queryParameters:$queryParameters"); logger.i("$queryParameters");
} }
var response = await _get(Uri.parse(url), headers: headers0).timeout(const Duration(seconds: 60)); var response = await _get(Uri.parse(url), headers: headers0).timeout(const Duration(seconds: 60));

@ -247,10 +247,10 @@ class VehiclePostingImages {
return data; return data;
} }
// @override @override
// String toString() { String toString() {
// return 'VehiclePostingImages{id: $id, imageName: $imageName, imageUrl: $imageUrl, imageStr: $imageStr, vehiclePostingID: $vehiclePostingID, vehiclePosting: $vehiclePosting}'; return 'VehiclePostingImages{id: $id, imageName: $imageName, imageUrl: $imageUrl, imageStr: $imageStr, vehiclePostingID: $vehiclePostingID, vehiclePosting: $vehiclePosting}';
// } }
} }
class RequestPostingImages { class RequestPostingImages {
@ -268,9 +268,9 @@ class RequestPostingImages {
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
final Map<String, dynamic> data = <String, dynamic>{}; final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = id; data['id'] = id ?? 0;
data['requestImage'] = requestImage; data['requestImage'] = requestImage;
data['requestID'] = requestID; data['requestID'] = requestID ?? 0;
return data; return data;
} }
@ -310,8 +310,8 @@ class VehiclePostingDamageParts {
return data; return data;
} }
// @override // @override
// String toString() { // String toString() {
// return 'VehiclePostingDamageParts{id: $id, comment: $comment, vehicleImageBase64: $vehicleImageBase64, vehicleDamagePartID: $vehicleDamagePartID, vehiclePostingID: $vehiclePostingID, isActive: $isActive}'; // return 'VehiclePostingDamageParts{id: $id, comment: $comment, vehicleImageBase64: $vehicleImageBase64, vehicleDamagePartID: $vehicleDamagePartID, vehiclePostingID: $vehiclePostingID, isActive: $isActive}';
// } // }
} }

@ -1,3 +1,4 @@
import 'dart:convert';
import 'dart:developer'; import 'dart:developer';
import 'package:mc_common_app/api/api_client.dart'; import 'package:mc_common_app/api/api_client.dart';
@ -5,6 +6,7 @@ import 'package:mc_common_app/classes/app_state.dart';
import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/classes/consts.dart';
import 'package:mc_common_app/config/dependencies.dart'; import 'package:mc_common_app/config/dependencies.dart';
import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart';
import 'package:mc_common_app/main.dart';
import 'package:mc_common_app/models/advertisment_models/ad_details_model.dart'; import 'package:mc_common_app/models/advertisment_models/ad_details_model.dart';
import 'package:mc_common_app/models/advertisment_models/ads_bank_details_model.dart'; import 'package:mc_common_app/models/advertisment_models/ads_bank_details_model.dart';
import 'package:mc_common_app/models/advertisment_models/ads_duration_model.dart'; import 'package:mc_common_app/models/advertisment_models/ads_duration_model.dart';
@ -16,8 +18,6 @@ import 'package:mc_common_app/models/general_models/generic_resp_model.dart';
import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/utils/enums.dart';
abstract class AdsRepo { abstract class AdsRepo {
Future<List<AdsDurationModel>> getAdsDuration(); Future<List<AdsDurationModel>> getAdsDuration();
Future<List<SpecialServiceModel>> getSpecialServices({required int specialServiceId}); Future<List<SpecialServiceModel>> getSpecialServices({required int specialServiceId});
@ -134,7 +134,7 @@ class AdsRepoImp implements AdsRepo {
} }
}; };
log("posting this ads: ${postParams.toString()}"); logger.i(jsonEncode(postParams.toString()));
String token = appState.getUser.data!.accessToken ?? ""; String token = appState.getUser.data!.accessToken ?? "";
GenericRespModel adsGenericModel = await apiClient.postJsonForObject( GenericRespModel adsGenericModel = await apiClient.postJsonForObject(
(json) => GenericRespModel.fromJson(json), (json) => GenericRespModel.fromJson(json),

@ -239,35 +239,34 @@ class RequestsVM extends BaseVM {
description = v; description = v;
} }
Future<VehiclePostingImages> convertFileToRequestPostingImages({required File file}) async { Future<RequestPostingImages> convertFileToRequestPostingImages({required File file}) async {
List<int> imageBytes = await file.readAsBytes(); List<int> imageBytes = await file.readAsBytes();
String image = base64Encode(imageBytes); String image = base64Encode(imageBytes);
String fileName = file.path.split('/').last; RequestPostingImages vehiclePostingImages = RequestPostingImages(requestImage: image);
VehiclePostingImages vehiclePostingImages = VehiclePostingImages(
imageName: fileName,
imageStr: image,
imageUrl: file.path,
);
return vehiclePostingImages; return vehiclePostingImages;
} }
Future<List<VehiclePostingImages>> getVehiclePostingImageList() async { Future<List<RequestPostingImages>> getVehiclePostingImageList() async {
List<VehiclePostingImages> vehicleImages = []; List<RequestPostingImages> requestImages = [];
log("vehicleImages: ${pickedVehicleImages.length}"); log("requestImages: ${pickedVehicleImages.length}");
for (var image in pickedVehicleImages) { for (var image in pickedVehicleImages) {
var value = await convertFileToRequestPostingImages(file: image); var value = await convertFileToRequestPostingImages(file: image);
vehicleImages.add(value); requestImages.add(value);
} }
return vehicleImages; return requestImages;
} }
Future<void> onCreateRequestTapped(BuildContext context) async { Future<void> onCreateRequestTapped(BuildContext context) async {
if (validateCreateRequestForm()) { if (validateCreateRequestForm()) {
Utils.showLoading(context); Utils.showLoading(context);
List<VehiclePostingImages> vehicleImages = await getVehiclePostingImageList(); List<RequestPostingImages> vehicleImages = await getVehiclePostingImageList();
List requestImages = [];
vehicleImages.forEach((element) {
requestImages.add(element.toJson());
});
Map<String, dynamic> body = { Map<String, dynamic> body = {
"customerID": AppState().getUser.data!.userInfo!.customerId ?? 0, "customerID": AppState().getUser.data!.userInfo!.customerId ?? 0,
"requestType": requestTypeId.selectedId, "requestType": requestTypeId.selectedId,
@ -281,7 +280,7 @@ class RequestsVM extends BaseVM {
"price": price, "price": price,
"description": description, "description": description,
"isSpecialServiceNeeded": false, "isSpecialServiceNeeded": false,
"requestImages": vehicleImages, "requestImages": requestImages,
}; };
try { try {
GenericRespModel respModel = await requestRepo.createRequest(body); GenericRespModel respModel = await requestRepo.createRequest(body);

@ -1,14 +1,11 @@
import 'dart:ui'; import 'dart:ui';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/flutter_svg.dart';
import 'package:image_picker/image_picker.dart'; import 'package:mc_common_app/classes/app_state.dart';
import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/classes/consts.dart';
import 'package:mc_common_app/config/routes.dart';
import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/int_extensions.dart';
import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart';
import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/theme/colors.dart';
import 'package:mc_common_app/utils/navigator.dart';
import 'package:mc_common_app/utils/utils.dart';
import 'package:mc_common_app/views/setting_options/widgets/custom_setting_options_tile.dart'; import 'package:mc_common_app/views/setting_options/widgets/custom_setting_options_tile.dart';
import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';
@ -56,6 +53,7 @@ class ProfileScreen extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
extendBody: true, extendBody: true,
backgroundColor: const Color(0xffefefef), backgroundColor: const Color(0xffefefef),
@ -111,7 +109,7 @@ class ProfileScreen extends StatelessWidget {
], ],
).horPaddingMain(), ).horPaddingMain(),
10.height, 10.height,
"Muhammad Ahmad".toText(fontSize: 20).paddingOnly(left: 25), "${AppState().getUser.data!.userInfo!.firstName} ${AppState().getUser.data!.userInfo!.lastName ?? ""}".toText(fontSize: 20).paddingOnly(left: 25),
Column( Column(
children: [ children: [
CustomProfileOptionsTile( CustomProfileOptionsTile(
@ -122,13 +120,13 @@ class ProfileScreen extends StatelessWidget {
), ),
CustomProfileOptionsTile( CustomProfileOptionsTile(
titleText: "Email", titleText: "Email",
subtitleText: "mail@gmail.com", subtitleText: "${AppState().getUser.data!.userInfo!.email}",
needBorderBelow: true, needBorderBelow: true,
onTap: () {}, onTap: () {},
), ),
CustomProfileOptionsTile( CustomProfileOptionsTile(
titleText: "Phone Number", titleText: "Phone Number",
subtitleText: "0504278212", subtitleText: "${AppState().getUser.data!.userInfo!.email}",
needBorderBelow: true, needBorderBelow: true,
onTap: () {}, onTap: () {},
), ),

@ -37,7 +37,8 @@ class CreateRequestPage extends StatelessWidget {
const Center( const Center(
child: CircularProgressIndicator(), child: CircularProgressIndicator(),
), ),
] else ...[ ] else
...[
Builder(builder: (context) { Builder(builder: (context) {
List<DropValue> requestTypeDrop = []; List<DropValue> requestTypeDrop = [];
for (var element in requestsVM.myRequestsTypeEnum) { for (var element in requestsVM.myRequestsTypeEnum) {
@ -58,7 +59,8 @@ class CreateRequestPage extends StatelessWidget {
const Center( const Center(
child: CircularProgressIndicator(), child: CircularProgressIndicator(),
), ),
] else ...[ ] else
...[
Builder(builder: (context) { Builder(builder: (context) {
List<DropValue> vehicleTypeDrop = []; List<DropValue> vehicleTypeDrop = [];
for (var element in requestsVM.vehicleTypes) { for (var element in requestsVM.vehicleTypes) {
@ -79,7 +81,8 @@ class CreateRequestPage extends StatelessWidget {
const Center( const Center(
child: CircularProgressIndicator(), child: CircularProgressIndicator(),
), ),
] else ...[ ] else
...[
Column( Column(
children: [ children: [
Builder(builder: (context) { Builder(builder: (context) {
@ -134,7 +137,9 @@ class CreateRequestPage extends StatelessWidget {
return DropdownField( return DropdownField(
(DropValue value) => requestsVM.updateSelectionVehicleCountryId(SelectionModel(selectedOption: value.value, selectedId: value.id)), (DropValue value) => requestsVM.updateSelectionVehicleCountryId(SelectionModel(selectedOption: value.value, selectedId: value.id)),
list: vehicleCountriesDrop, list: vehicleCountriesDrop,
dropdownValue: requestsVM.vehicleCountryId.selectedId != -1 ? DropValue(requestsVM.vehicleCountryId.selectedId, requestsVM.vehicleCountryId.selectedOption, "") : null, dropdownValue: requestsVM.vehicleCountryId.selectedId != -1
? DropValue(requestsVM.vehicleCountryId.selectedId, requestsVM.vehicleCountryId.selectedOption, "")
: null,
hint: "Country", hint: "Country",
errorValue: requestsVM.vehicleCountryId.errorValue, errorValue: requestsVM.vehicleCountryId.errorValue,
); );
@ -145,7 +150,8 @@ class CreateRequestPage extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [const CircularProgressIndicator().paddingAll(10)], children: [const CircularProgressIndicator().paddingAll(10)],
), ),
] else ...[ ] else
...[
8.height, 8.height,
Builder(builder: (context) { Builder(builder: (context) {
List<DropValue> vehicleCitiesDrop = []; List<DropValue> vehicleCitiesDrop = [];
@ -166,6 +172,7 @@ class CreateRequestPage extends StatelessWidget {
TxtField( TxtField(
hint: "Price", hint: "Price",
value: requestsVM.price, value: requestsVM.price,
keyboardType: TextInputType.number,
onChanged: (e) => requestsVM.updatePrice(e), onChanged: (e) => requestsVM.updatePrice(e),
), ),
8.height, 8.height,

@ -1,10 +1,6 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:mc_common_app/config/routes.dart';
import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart';
import 'package:mc_common_app/theme/colors.dart';
import 'package:mc_common_app/utils/navigator.dart';
import 'package:mc_common_app/views/setting_options/widgets/custom_setting_options_tile.dart'; import 'package:mc_common_app/views/setting_options/widgets/custom_setting_options_tile.dart';
import 'package:mc_common_app/widgets/button/show_fill_button.dart';
import 'package:mc_common_app/widgets/common_widgets/app_bar.dart'; import 'package:mc_common_app/widgets/common_widgets/app_bar.dart';
import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';

@ -35,7 +35,7 @@ class _LoginWithPasswordState extends State<LoginWithPassword> {
//TODO: ONLY FOR DEVELOPMENT PURPOSE //TODO: ONLY FOR DEVELOPMENT PURPOSE
// String phoneNum = "966504278212", password = "Fa@1234"; // String phoneNum = "966504278212", password = "Fa@1234";
// String phoneNum = "966504278213", password = "Fa@1234"; // String phoneNum = "966504278213", password = "Fa@1234";
String phoneNum = "966504278214", password = "Fa@1234"; String phoneNum = "966504278213", password = "Fa@1234";
String email = ""; String email = "";
String countryCode = ""; String countryCode = "";
Country? _country; Country? _country;

Loading…
Cancel
Save