Merge branch 'design_3.0_ppm_new_flow' into design_3.0_transfer_request_new_flow

design_3.0_dark_mode
WaseemAbbasi22 12 months ago
commit b767f9123e

@ -172,20 +172,13 @@ class _SplashPageState extends State<SplashPage> {
Future<bool> checkDeviceSafety() async { Future<bool> checkDeviceSafety() async {
if (!kReleaseMode) return true; if (!kReleaseMode) return true;
bool isOnExternalStorage = false;
bool isDevelopmentModeEnable = false;
bool isJailBroken = false; bool isJailBroken = false;
bool isRealDevice = false; bool isRealDevice = false;
try { try {
isJailBroken = await SafeDevice.isJailBroken; isJailBroken = await SafeDevice.isJailBroken;
isRealDevice = await SafeDevice.isRealDevice; isRealDevice = await SafeDevice.isRealDevice;
if (Platform.isAndroid) { if (isJailBroken || !isRealDevice) {
isOnExternalStorage = await SafeDevice.isOnExternalStorage;
isDevelopmentModeEnable = await SafeDevice.isDevelopmentModeEnable;
}
//TODO correct isDevelopmentModeEnable when publish to prod...
if (isJailBroken || !isRealDevice || isOnExternalStorage || isDevelopmentModeEnable) {
return false; return false;
} else { } else {
return true; return true;

@ -5,7 +5,7 @@ import 'package:flutter/material.dart';
import 'package:nfc_manager/nfc_manager.dart'; import 'package:nfc_manager/nfc_manager.dart';
import 'package:nfc_manager/platform_tags.dart'; import 'package:nfc_manager/platform_tags.dart';
void showNfcReader(BuildContext context, { Function(String nfcId) ?onNcfScan}) { void showNfcReader(BuildContext context, {Function(String nfcId)? onNcfScan}) {
showModalBottomSheet( showModalBottomSheet(
context: context, context: context,
enableDrag: false, enableDrag: false,
@ -23,7 +23,7 @@ void showNfcReader(BuildContext context, { Function(String nfcId) ?onNcfScan}) {
} }
class NfcLayout extends StatefulWidget { class NfcLayout extends StatefulWidget {
Function(String nfcId) ?onNcfScan; Function(String nfcId)? onNcfScan;
NfcLayout({this.onNcfScan}); NfcLayout({this.onNcfScan});
@ -96,7 +96,6 @@ class _NfcLayoutState extends State<NfcLayout> {
SizedBox( SizedBox(
height: 30, height: 30,
), ),
Image.asset( Image.asset(
"assets/images/ic_nfc.png", "assets/images/ic_nfc.png",
height: MediaQuery.of(context).size.width / 3, height: MediaQuery.of(context).size.width / 3,
@ -159,7 +158,7 @@ class _NfcLayoutState extends State<NfcLayout> {
), ),
Image.asset( Image.asset(
// "assets/icons/nfc/ic_done.png", // "assets/icons/nfc/ic_done.png",
"assets/images/ic_done.png", "assets/images/ic_done.png",
height: MediaQuery.of(context).size.width / 3, height: MediaQuery.of(context).size.width / 3,
width: double.infinity, width: double.infinity,
), ),

@ -50,7 +50,6 @@ class _VerifyAssetDetailsState extends State<VerifyAssetDetails> with TickerProv
@override @override
void initState() { void initState() {
super.initState(); super.initState();
} }
Future<void> getFaultDescription({required int? assetId}) async { Future<void> getFaultDescription({required int? assetId}) async {
@ -64,7 +63,7 @@ class _VerifyAssetDetailsState extends State<VerifyAssetDetails> with TickerProv
void assignValues() { void assignValues() {
// ServiceRequestDetailProvider requestDetailProvider = Provider.of<ServiceRequestDetailProvider>(context, listen: false); // ServiceRequestDetailProvider requestDetailProvider = Provider.of<ServiceRequestDetailProvider>(context, listen: false);
// _requestDetailProvider = Provider.of<ServiceRequestDetailProvider>(context, listen: false); // _requestDetailProvider = Provider.of<ServiceRequestDetailProvider>(context, listen: false);
WorkOrderData currentWorkOrderData = _requestDetailProvider!.currentWorkOrder!.data!; WorkOrderData currentWorkOrderData = _requestDetailProvider!.currentWorkOrder!.data!;
_requestDetailProvider!.engineerUpdateWorkOrderHelperModel = EngineerUpdateWorkOrderHelperModel( _requestDetailProvider!.engineerUpdateWorkOrderHelperModel = EngineerUpdateWorkOrderHelperModel(
workOrderId: currentWorkOrderData.requestId, workOrderId: currentWorkOrderData.requestId,
@ -116,113 +115,115 @@ class _VerifyAssetDetailsState extends State<VerifyAssetDetails> with TickerProv
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
if (widget.isEdit) ...[ if (widget.isEdit) ...[
Column( SingleChildScrollView(
crossAxisAlignment: CrossAxisAlignment.start, child: Column(
mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start,
children: [ mainAxisSize: MainAxisSize.min,
assetStatusWidget(context: context, workOrderData: requestDetailProvider.engineerUpdateWorkOrderHelperModel!), children: [
12.height, assetStatusWidget(context: context, workOrderData: requestDetailProvider.engineerUpdateWorkOrderHelperModel!),
ADatePicker( 12.height,
label: context.translation.returnToService, ADatePicker(
hideShadow: true, label: context.translation.returnToService,
backgroundColor: AppColor.neutral100, hideShadow: true,
date: DateTime.tryParse(requestDetailProvider.engineerUpdateWorkOrderHelperModel?.returnToService ?? ""), backgroundColor: AppColor.neutral100,
formatDateWithTime: true, date: DateTime.tryParse(requestDetailProvider.engineerUpdateWorkOrderHelperModel?.returnToService ?? ""),
onDatePicker: (selectedDate) { formatDateWithTime: true,
showTimePicker( onDatePicker: (selectedDate) {
context: context, showTimePicker(
initialTime: TimeOfDay.now(), context: context,
).then((selectedTime) { initialTime: TimeOfDay.now(),
// Handle the selected date and time here. ).then((selectedTime) {
if (selectedTime != null) { // Handle the selected date and time here.
DateTime? selectedDateTime = DateTime( if (selectedTime != null) {
selectedDate.year, DateTime? selectedDateTime = DateTime(
selectedDate.month, selectedDate.year,
selectedDate.day, selectedDate.month,
selectedTime.hour, selectedDate.day,
selectedTime.minute, selectedTime.hour,
); selectedTime.minute,
// if (requestDetailProvider.engineerUpdateWorkOrderHelperModel?.returnToService != null && );
// selectedDateTime.isBefore(DateTime.parse(requestDetailProvider.engineerUpdateWorkOrderHelperModel!.returnToService!))) { // if (requestDetailProvider.engineerUpdateWorkOrderHelperModel?.returnToService != null &&
// "Return To Service Date time must be greater then previous date".showToast; // selectedDateTime.isBefore(DateTime.parse(requestDetailProvider.engineerUpdateWorkOrderHelperModel!.returnToService!))) {
// return; // "Return To Service Date time must be greater then previous date".showToast;
// } // return;
// }
setState(() {
requestDetailProvider.engineerUpdateWorkOrderHelperModel?.returnToService = selectedDateTime.toIso8601String();
});
}
});
},
),
12.height,
SingleItemDropDownMenu<Lookup, LoanAvailabilityProvider>(
context: context,
title: context.translation.loanAvailability,
backgroundColor: AppColor.neutral100,
height: 56.toScreenHeight,
showShadow: false,
initialValue: requestDetailProvider.engineerUpdateWorkOrderHelperModel?.loanAvailability,
onSelect: (status) {
if (status != null) {
requestDetailProvider.engineerUpdateWorkOrderHelperModel?.loanAvailability = status;
if (status.value != 1) {
loanAvailabilityAsset = null;
requestDetailProvider.engineerUpdateWorkOrderHelperModel?.loanAssetId = null;
}
setState(() {});
}
},
),
if (requestDetailProvider.engineerUpdateWorkOrderHelperModel?.loanAvailability?.value == 1) 8.height,
if (requestDetailProvider.engineerUpdateWorkOrderHelperModel?.loanAvailability?.value == 1)
PickAsset(
device: loanAvailabilityAsset, // ?? _serviceReport.device,
cardColor: AppColor.neutral100,
onPickAsset: (asset) {
requestDetailProvider.engineerUpdateWorkOrderHelperModel?.loanAssetId = asset.id;
setState(() { setState(() {
requestDetailProvider.engineerUpdateWorkOrderHelperModel?.returnToService = selectedDateTime.toIso8601String(); loanAvailabilityAsset = asset;
}); });
},
),
12.height,
SingleItemDropDownMenu<Lookup, ReasonProvider>(
context: context,
title: context.translation.failureReason,
backgroundColor: AppColor.neutral100,
height: 56.toScreenHeight,
showShadow: false,
initialValue: requestDetailProvider.engineerUpdateWorkOrderHelperModel?.failureReason,
onSelect: (value) {
if (value != null) {
requestDetailProvider.engineerUpdateWorkOrderHelperModel?.failureReason = value;
} }
}); },
}, ),
), 12.height,
12.height, SingleItemDropDownMenu<FaultDescription, NullableLoadingProvider>(
SingleItemDropDownMenu<Lookup, LoanAvailabilityProvider>( context: context,
context: context, title: context.translation.faultDescription,
title: context.translation.loanAvailability, backgroundColor: AppColor.neutral100,
backgroundColor: AppColor.neutral100, staticData: _faults,
height: 56.toScreenHeight, showShadow: false,
showShadow: false, initialValue: requestDetailProvider.engineerUpdateWorkOrderHelperModel?.faultDescription,
initialValue: requestDetailProvider.engineerUpdateWorkOrderHelperModel?.loanAvailability, onSelect: (fault) {
onSelect: (status) { if (fault != null) {
if (status != null) { requestDetailProvider.engineerUpdateWorkOrderHelperModel?.faultDescription = fault;
requestDetailProvider.engineerUpdateWorkOrderHelperModel?.loanAvailability = status; requestDetailProvider.engineerUpdateWorkOrderHelperModel?.solution = fault.workPerformed;
if (status.value != 1) { setState(() {});
loanAvailabilityAsset = null;
requestDetailProvider.engineerUpdateWorkOrderHelperModel?.loanAssetId = null;
} }
setState(() {});
}
},
),
if (requestDetailProvider.engineerUpdateWorkOrderHelperModel?.loanAvailability?.value == 1) 8.height,
if (requestDetailProvider.engineerUpdateWorkOrderHelperModel?.loanAvailability?.value == 1)
PickAsset(
device: loanAvailabilityAsset, // ?? _serviceReport.device,
cardColor: AppColor.neutral100,
onPickAsset: (asset) {
requestDetailProvider.engineerUpdateWorkOrderHelperModel?.loanAssetId = asset.id;
setState(() {
loanAvailabilityAsset = asset;
});
}, },
), ),
12.height, 12.height,
SingleItemDropDownMenu<Lookup, ReasonProvider>( context.translation.solutions.heading6(context).custom(color: AppColor.neutral50),
context: context, 8.height,
title: context.translation.failureReason, requestDetailProvider.engineerUpdateWorkOrderHelperModel?.solution != null
backgroundColor: AppColor.neutral100, ? requestDetailProvider.engineerUpdateWorkOrderHelperModel!.solution!.bodyText2(context).custom(color: AppColor.neutral120)
height: 56.toScreenHeight, : const SizedBox(),
showShadow: false, ],
initialValue: requestDetailProvider.engineerUpdateWorkOrderHelperModel?.failureReason, ).toShadowContainer(context).paddingAll(16),
onSelect: (value) { ).expanded,
if (value != null) {
requestDetailProvider.engineerUpdateWorkOrderHelperModel?.failureReason = value;
}
},
),
12.height,
SingleItemDropDownMenu<FaultDescription, NullableLoadingProvider>(
context: context,
title: context.translation.faultDescription,
backgroundColor: AppColor.neutral100,
staticData: _faults,
showShadow: false,
initialValue: requestDetailProvider.engineerUpdateWorkOrderHelperModel?.faultDescription,
onSelect: (fault) {
if (fault != null) {
requestDetailProvider.engineerUpdateWorkOrderHelperModel?.faultDescription = fault;
requestDetailProvider.engineerUpdateWorkOrderHelperModel?.solution = fault.workPerformed;
setState(() {});
}
},
),
12.height,
context.translation.solutions.heading6(context).custom(color: AppColor.neutral50),
8.height,
requestDetailProvider.engineerUpdateWorkOrderHelperModel?.solution != null
? requestDetailProvider.engineerUpdateWorkOrderHelperModel!.solution!.bodyText2(context).custom(color: AppColor.neutral120)
: const SizedBox(),
],
).toShadowContainer(context).paddingAll(16),
] else ...[ ] else ...[
assetStatusWidget(context: context, workOrderData: requestDetailProvider.engineerUpdateWorkOrderHelperModel!).toShadowContainer(context).paddingAll(16), assetStatusWidget(context: context, workOrderData: requestDetailProvider.engineerUpdateWorkOrderHelperModel!).toShadowContainer(context).paddingAll(16),
], ],

Loading…
Cancel
Save