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

@ -247,10 +247,10 @@ class VehiclePostingImages {
return data;
}
// @override
// String toString() {
// return 'VehiclePostingImages{id: $id, imageName: $imageName, imageUrl: $imageUrl, imageStr: $imageStr, vehiclePostingID: $vehiclePostingID, vehiclePosting: $vehiclePosting}';
// }
@override
String toString() {
return 'VehiclePostingImages{id: $id, imageName: $imageName, imageUrl: $imageUrl, imageStr: $imageStr, vehiclePostingID: $vehiclePostingID, vehiclePosting: $vehiclePosting}';
}
}
class RequestPostingImages {
@ -268,9 +268,9 @@ class RequestPostingImages {
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = id;
data['id'] = id ?? 0;
data['requestImage'] = requestImage;
data['requestID'] = requestID;
data['requestID'] = requestID ?? 0;
return data;
}
@ -310,8 +310,8 @@ class VehiclePostingDamageParts {
return data;
}
// @override
// String toString() {
// return 'VehiclePostingDamageParts{id: $id, comment: $comment, vehicleImageBase64: $vehicleImageBase64, vehicleDamagePartID: $vehicleDamagePartID, vehiclePostingID: $vehiclePostingID, isActive: $isActive}';
// }
// @override
// String toString() {
// 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 '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/config/dependencies.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/ads_bank_details_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';
abstract class AdsRepo {
Future<List<AdsDurationModel>> getAdsDuration();
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 ?? "";
GenericRespModel adsGenericModel = await apiClient.postJsonForObject(
(json) => GenericRespModel.fromJson(json),

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

@ -1,14 +1,11 @@
import 'dart:ui';
import 'package:flutter/material.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/config/routes.dart';
import 'package:mc_common_app/extensions/int_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/utils/utils.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';
@ -56,6 +53,7 @@ class ProfileScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
extendBody: true,
backgroundColor: const Color(0xffefefef),
@ -111,7 +109,7 @@ class ProfileScreen extends StatelessWidget {
],
).horPaddingMain(),
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(
children: [
CustomProfileOptionsTile(
@ -122,13 +120,13 @@ class ProfileScreen extends StatelessWidget {
),
CustomProfileOptionsTile(
titleText: "Email",
subtitleText: "mail@gmail.com",
subtitleText: "${AppState().getUser.data!.userInfo!.email}",
needBorderBelow: true,
onTap: () {},
),
CustomProfileOptionsTile(
titleText: "Phone Number",
subtitleText: "0504278212",
subtitleText: "${AppState().getUser.data!.userInfo!.email}",
needBorderBelow: true,
onTap: () {},
),

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

@ -1,10 +1,6 @@
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/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/widgets/button/show_fill_button.dart';
import 'package:mc_common_app/widgets/common_widgets/app_bar.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
// String phoneNum = "966504278212", password = "Fa@1234";
// String phoneNum = "966504278213", password = "Fa@1234";
String phoneNum = "966504278214", password = "Fa@1234";
String phoneNum = "966504278213", password = "Fa@1234";
String email = "";
String countryCode = "";
Country? _country;

Loading…
Cancel
Save