@os1-platform/dispatch-mobile 2.1.7 → 2.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/executiontasks/imageCapture/CaptureUtils.js +1 -4
- package/lib/commonjs/components/executiontasks/imageCapture/CaptureUtils.js.map +1 -1
- package/lib/commonjs/manager/syncmanager/document/DocumentSyncManager.js +2 -14
- package/lib/commonjs/manager/syncmanager/document/DocumentSyncManager.js.map +1 -1
- package/lib/module/components/executiontasks/imageCapture/CaptureUtils.js +1 -4
- package/lib/module/components/executiontasks/imageCapture/CaptureUtils.js.map +1 -1
- package/lib/module/manager/syncmanager/document/DocumentSyncManager.js +2 -14
- package/lib/module/manager/syncmanager/document/DocumentSyncManager.js.map +1 -1
- package/package.json +1 -1
- package/src/components/executiontasks/imageCapture/CaptureUtils.ts +2 -3
- package/src/manager/syncmanager/document/DocumentSyncManager.ts +2 -12
|
@@ -25,7 +25,6 @@ var _DispatchSdkCache = _interopRequireDefault(require("../../../manager/sdk/Dis
|
|
|
25
25
|
var _SyncManagerUtils = require("../../../utils/SyncManagerUtils");
|
|
26
26
|
var _reactNativeImagePicker = require("react-native-image-picker");
|
|
27
27
|
var _reactNativeCompressor = require("react-native-compressor");
|
|
28
|
-
var _storage = _interopRequireDefault(require("../../../utils/storage"));
|
|
29
28
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
30
29
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
31
30
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
@@ -155,10 +154,8 @@ async function captureImage(imageWidth, imageHeight, fileSize) {
|
|
|
155
154
|
console.log("aks:uri-after=", uri);
|
|
156
155
|
//
|
|
157
156
|
if (uri != null) {
|
|
158
|
-
let compressionRatio = await getCompressionRatio(uri, fileSize);
|
|
157
|
+
let compressionRatio = 0.80; //await getCompressionRatio(uri, fileSize);
|
|
159
158
|
console.log('aks:compressionRatio=', compressionRatio);
|
|
160
|
-
_storage.default.getInstance().setItem('maxSize', String(fileSize));
|
|
161
|
-
_storage.default.getInstance().setItem('cRatio', String(compressionRatio));
|
|
162
159
|
console.log('aks:uri=', uri);
|
|
163
160
|
let resizedImage1 = await _reactNativeCompressor.Image.compress(uri, {
|
|
164
161
|
compressionMethod: 'manual',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","FileSystem","_interopRequireWildcard","_expoImagePicker","ImagePicker","_Toaster","_Logger","_ExecTaskUtils","_EventCodeContainer","_ETConfig","_BaseError","_ErrorCodes","_interopRequireDefault","_DispatchSdkCache","_SyncManagerUtils","_reactNativeImagePicker","_reactNativeCompressor","_storage","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","deleteImage","imageData","images","deleteAsync","path","filtered","filter","ele","img","id","toString","toLowerCase","console","log","getMaxImagesCount","props","captureCountLimit","getImagesFileName","Date","now","getCompressionRatio","uri","maxSize","fileInfo","getInfoAsync","size","Math","min","exists","fileSize","error","Logger","getInstance","logEvent","message","LOG_TYPE","SDK_ERROR","checkCameraPermissionUtil","response","getCameraPermissionsAsync","granted","resp","requestCameraPermissionsAsync","status","PermissionStatus","GRANTED","captureImage","imageWidth","imageHeight","Alert","alert","cameraResult","options","selectionLimit","mediaType","includeBase64","launchCamera","didCancel","showToast","errorCode","errorMessage","assets","compressionRatio","Storage","setItem","String","resizedImage1","Image","compress","compressionMethod","quality","includes","resizedImageResult","width","height","base64","then","SDK_DEBUG","catch","exception","getCaptureOutput","imageDataList","captureProps","_captureProps$applica","length","getBaseETResponse","EntityCode","IMAGE_CAPTURE","getEventCodeByET","ExecutionTaskID","applicableReasons","failure","mergedObjectiveId","_captureProps$applica2","success","captures","getImagesData","imagesDataList","output","folderName","DispatchSdkCache","getKeyFromCache","KEYS","FMS_FOLDER","data","insertID","insertDocumentInDB","title","dateTime","lat","lng","accuracy","push","url","timestamp","file","folder","name","BaseError","BaseErrorCodes","SQLiteDBIssue"],"sources":["CaptureUtils.ts"],"sourcesContent":["import type {\n CapturedImage,\n CaptureInput,\n CaptureOutput,\n ImageData,\n} from './CaptureSchema';\nimport { Alert, Platform } from 'react-native';\nimport * as FileSystem from 'expo-file-system';\nimport * as ImagePicker from 'expo-image-picker';\nimport { PermissionStatus } from 'expo-image-picker';\nimport { showToast } from '../../widgets/Toaster';\nimport Logger, { LOG_TYPE } from '../../../utils/Logger';\nimport { getBaseETResponse } from '../../../utils/ExecTaskUtils';\nimport { getEventCodeByET } from '../../../manager/dispatchCodes/EventCodeContainer';\nimport {\n EntityCode,\n ExecutionTaskID,\n} from '../../../models/execTasks/ETConfig';\nimport { BaseError } from '../../../errors/BaseError';\nimport BaseErrorCodes from '../../../errors/ErrorCodes';\nimport DispatchSdkCache from '../../../manager/sdk/DispatchSdkCache';\nimport { insertDocumentInDB } from '../../../utils/SyncManagerUtils';\nimport {CameraOptions, launchCamera} from 'react-native-image-picker';\nimport { Image } from 'react-native-compressor';\nimport Storage from '../../../utils/storage';\n\nexport async function deleteImage(imageData: { path: string; id: { toString: () => string; }; }, images: any[]) {\n await FileSystem.deleteAsync(imageData.path);\n let filtered = images.filter(ele=>ele).filter(img => img.id.toString().toLowerCase() !== imageData.id.toString().toLowerCase()\n );\n console.log(\"filtered\",filtered);\n return filtered;\n}\n\nexport function getMaxImagesCount(props: CaptureInput) {\n if (props && props.captureCountLimit) return props.captureCountLimit;\n else return 1;\n}\n\nexport function getImagesFileName() {\n return `IMG_${Date.now().toString()}.jpg`;\n}\n\nexport async function getCompressionRatio(\n uri: string,\n maxSize: number\n): Promise<number> {\n try {\n let fileInfo = await FileSystem.getInfoAsync(uri, {\n size: true,\n });\n maxSize = Math.min(maxSize, 1024);\n if (fileInfo.exists) {\n let fileSize = fileInfo.size / 1024;\n if (fileSize > maxSize) {\n return maxSize / fileSize;\n } else return 1;\n }\n return 1;\n } catch (error: any) {\n Logger.getInstance().logEvent(\n 'getCompressionRatio',\n error.message,\n LOG_TYPE.SDK_ERROR\n );\n return 1;\n }\n}\n\nexport async function checkCameraPermissionUtil(): Promise<boolean> {\n let response = await ImagePicker.getCameraPermissionsAsync();\n if (response.granted) return true;\n else {\n let resp = await ImagePicker.requestCameraPermissionsAsync();\n return resp.status === PermissionStatus.GRANTED;\n }\n}\n\ninterface responseType {\n cancelled?: boolean;\n uri?: string;\n assets?: any[];\n}\n\ndeclare type ImageResult = {\n uri: string;\n width: number;\n height: number;\n base64?: string;\n};\n\nexport async function captureImage(\n imageWidth: number,\n imageHeight: number,\n fileSize: number\n): Promise<ImageResult | null> {\n try {\n if (!(await checkCameraPermissionUtil())) {\n Alert.alert('Permissions Error', 'Camera permissions not provided!');\n return null;\n }\n\n\n //let response : responseType;\n let uri : string = ''\n let cameraResult = null;\n\n const options = {\n selectionLimit: 1,\n mediaType: 'photo',\n includeBase64: false,\n };\n\n \n\n // You can also use as a promise without 'callback':\n // await launchCamera(options as CameraOptions , response => { \n // if (response?.didCancel){\n // console.log(\"aks:didCancel=\")\n // showToast('User cancelled the action'); \n // console.log('User cancelled the action');\n // } else if (response.errorCode == ('camera_unavailable' || 'permission' || 'others')) {\n // console.log(\"aks:errorCode=\")\n // showToast(response.errorMessage? response.errorMessage : ''); \n // console.log('ImagePicker Error: ', response.errorMessage);\n // } else {\n // console.log(\"aks:errorCode=before\")\n // async()=>{\n // console.log(\"aks:else=after\")\n // let assets = response.assets? response.assets : null; \n // console.log(\"aks:assets=\", assets)\n // // \n // if(assets != null){\n // uri = assets[0].uri as string;\n // //\n // let compressionRatio = await getCompressionRatio(uri, fileSize);\n // console.log(\"aks:compressionRatio=\", compressionRatio)\n \n // //\n // const saveOptions = {\n // compress: compressionRatio,\n // }\n // //\n // console.log(\"aks:uri=blank\")\n // console.log(\"aks:uri=\", uri)\n // let resizedImage = await ImageManipulator.manipulateAsync(uri, [], saveOptions,);\n // //\n // console.log(\"aks:resizedImage=\", resizedImage)\n // //delete file\n // FileSystem.deleteAsync(uri)\n // .then(() =>\n // Logger.getInstance().logEvent('CAPTURE_ET','File deleted success',LOG_TYPE.SDK_DEBUG)\n // ).catch((error) => {\n // Logger.getInstance().logEvent('CAPTURE_ET',error.message,LOG_TYPE.SDK_ERROR);\n // });\n // //\n // return resizedImage;\n // } \n // return null; \n // }\n // } \n // });\n\n await launchCamera(options as CameraOptions , response => { \n if (response?.didCancel){\n console.log(\"aks:didCancel=\")\n showToast('User cancelled the action'); \n console.log('User cancelled the action');\n } else if (response.errorCode == ('camera_unavailable' || 'permission' || 'others')) {\n console.log(\"aks:errorCode=\")\n showToast(response.errorMessage? response.errorMessage : ''); \n console.log('ImagePicker Error: ', response.errorMessage);\n } else {\n console.log(\"aks:response=else-start\")\n // \n let assets = response.assets? response.assets : null; \n console.log(\"aks:assets=\", assets)\n \n //\n if(assets != null){\n uri = assets[0].uri as string;\n }\n\n console.log(\"aks:uri=before\", uri)\n } \n });\n\n console.log(\"aks:uri-after=\", uri)\n // \n if (uri != null) {\n \n let compressionRatio = await getCompressionRatio(uri, fileSize);\n console.log('aks:compressionRatio=', compressionRatio);\n Storage.getInstance().setItem('maxSize', String(fileSize));\n Storage.getInstance().setItem('cRatio', String(compressionRatio));\n\n console.log('aks:uri=', uri);\n\n let resizedImage1 = await Image.compress(uri, {\n compressionMethod: 'manual',\n quality: compressionRatio,\n });\n //\n console.log('aks:resizedImage1=', resizedImage1);\n // If captured image file path does not have prefix file:// then we are addding manually\n if (!resizedImage1.includes('file')) {\n resizedImage1 = 'file://' + resizedImage1; \n }\n\n console.log('aks:resizedImage2=', resizedImage1);\n\n let resizedImageResult: ImageResult = {\n uri: resizedImage1,\n width: imageWidth,\n height: imageHeight,\n base64: '',\n };\n console.log('aks:resizedImageResult=', resizedImageResult);\n\n //delete file\n FileSystem.deleteAsync(uri)\n .then(() =>\n Logger.getInstance().logEvent('CAPTURE_ET','File deleted success',LOG_TYPE.SDK_DEBUG)\n ).catch((error) => {\n Logger.getInstance().logEvent('CAPTURE_ET',error.message,LOG_TYPE.SDK_ERROR);\n });\n //\n\n // console.log(\"resizedImage=before\")\n // console.log(\"resizedImage=\", resizedImage)\n\n return resizedImageResult;\n }\n\n // if(Platform.OS = 'android'){\n // response = {'uri': 'hello'}\n // uri = 'hello';\n // } else {\n // response = await ImagePicker.launchCameraAsync({\n // quality: 1,\n // });\n // let assets = response.assets;\n // if(assets){\n // uri = assets[0].uri\n // } \n // }\n\n // if (response?.cancelled){\n // showToast('User cancelled the action');\n // return null;\n // } \n\n \n // let actionResize: ActionResize = {\n // resize: {\n // width: imageWidth,\n // height: imageHeight,\n // },\n // };\n\n return null\n \n } catch (exception: any) {\n //showToast(`Error ${exception.message}`);\n //console.error('capture image error: ', exception);\n return null;\n }\n}\n\n\nexport async function getCaptureOutput(\n imageDataList: ImageData[],\n captureProps: CaptureInput\n): Promise<CaptureOutput> {\n if (!imageDataList || imageDataList.length === 0)\n return {\n ...(await getBaseETResponse(\n EntityCode.IMAGE_CAPTURE,\n false,\n getEventCodeByET(\n ExecutionTaskID.IMAGE_CAPTURE,\n false,\n captureProps.applicableReasons?.failure\n ),\n '',\n captureProps.mergedObjectiveId,\n ExecutionTaskID.IMAGE_CAPTURE\n )),\n };\n else {\n return {\n ...(await getBaseETResponse(\n EntityCode.IMAGE_CAPTURE,\n true,\n getEventCodeByET(\n ExecutionTaskID.IMAGE_CAPTURE,\n true,\n captureProps.applicableReasons?.success\n ),\n '',\n captureProps.mergedObjectiveId,\n ExecutionTaskID.IMAGE_CAPTURE\n )),\n captures: await getImagesData(imageDataList, captureProps),\n };\n }\n}\n\nasync function getImagesData(\n imagesDataList: ImageData[],\n captureProps: CaptureInput\n): Promise<CapturedImage[]> {\n if (imagesDataList && imagesDataList.length > 0) {\n let output: CapturedImage[] = [];\n const folderName =\n (await DispatchSdkCache.getInstance().getKeyFromCache(\n DispatchSdkCache.KEYS.FMS_FOLDER\n )) ?? 'NULL';\n console.log('getImagesData:',folderName);\n for (const data of imagesDataList) {\n let insertID = await insertDocumentInDB(\n data.id,\n folderName,\n // JSON.stringify(captureProps.jobIds),\n // JSON.stringify(captureProps.objRefs),\n null,\n captureProps.title,\n data.path,\n data.dateTime,\n data.lat,\n data.lng,\n data.accuracy\n );\n if (insertID)\n output.push({\n url: '',\n timestamp: data.timestamp,\n file: { folder: folderName, name: data.id },\n });\n else\n throw new BaseError(\n BaseErrorCodes.SQLiteDBIssue,\n 'Unable to save Image'\n );\n }\n return output;\n } else return [];\n}"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_reactNative","require","FileSystem","_interopRequireWildcard","_expoImagePicker","ImagePicker","_Toaster","_Logger","_ExecTaskUtils","_EventCodeContainer","_ETConfig","_BaseError","_ErrorCodes","_interopRequireDefault","_DispatchSdkCache","_SyncManagerUtils","_reactNativeImagePicker","_reactNativeCompressor","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","deleteImage","imageData","images","deleteAsync","path","filtered","filter","ele","img","id","toString","toLowerCase","console","log","getMaxImagesCount","props","captureCountLimit","getImagesFileName","Date","now","getCompressionRatio","uri","maxSize","fileInfo","getInfoAsync","size","Math","min","exists","fileSize","error","Logger","getInstance","logEvent","message","LOG_TYPE","SDK_ERROR","checkCameraPermissionUtil","response","getCameraPermissionsAsync","granted","resp","requestCameraPermissionsAsync","status","PermissionStatus","GRANTED","captureImage","imageWidth","imageHeight","Alert","alert","cameraResult","options","selectionLimit","mediaType","includeBase64","launchCamera","didCancel","showToast","errorCode","errorMessage","assets","compressionRatio","resizedImage1","Image","compress","compressionMethod","quality","includes","resizedImageResult","width","height","base64","then","SDK_DEBUG","catch","exception","getCaptureOutput","imageDataList","captureProps","_captureProps$applica","length","getBaseETResponse","EntityCode","IMAGE_CAPTURE","getEventCodeByET","ExecutionTaskID","applicableReasons","failure","mergedObjectiveId","_captureProps$applica2","success","captures","getImagesData","imagesDataList","output","folderName","DispatchSdkCache","getKeyFromCache","KEYS","FMS_FOLDER","data","insertID","insertDocumentInDB","title","dateTime","lat","lng","accuracy","push","url","timestamp","file","folder","name","BaseError","BaseErrorCodes","SQLiteDBIssue"],"sources":["CaptureUtils.ts"],"sourcesContent":["import type {\n CapturedImage,\n CaptureInput,\n CaptureOutput,\n ImageData,\n} from './CaptureSchema';\nimport { Alert, Platform } from 'react-native';\nimport * as FileSystem from 'expo-file-system';\nimport * as ImagePicker from 'expo-image-picker';\nimport { PermissionStatus } from 'expo-image-picker';\nimport { showToast } from '../../widgets/Toaster';\nimport Logger, { LOG_TYPE } from '../../../utils/Logger';\nimport { getBaseETResponse } from '../../../utils/ExecTaskUtils';\nimport { getEventCodeByET } from '../../../manager/dispatchCodes/EventCodeContainer';\nimport {\n EntityCode,\n ExecutionTaskID,\n} from '../../../models/execTasks/ETConfig';\nimport { BaseError } from '../../../errors/BaseError';\nimport BaseErrorCodes from '../../../errors/ErrorCodes';\nimport DispatchSdkCache from '../../../manager/sdk/DispatchSdkCache';\nimport { insertDocumentInDB } from '../../../utils/SyncManagerUtils';\nimport {CameraOptions, launchCamera} from 'react-native-image-picker';\nimport { Image } from 'react-native-compressor';\nimport Storage from '../../../utils/storage';\n\nexport async function deleteImage(imageData: { path: string; id: { toString: () => string; }; }, images: any[]) {\n await FileSystem.deleteAsync(imageData.path);\n let filtered = images.filter(ele=>ele).filter(img => img.id.toString().toLowerCase() !== imageData.id.toString().toLowerCase()\n );\n console.log(\"filtered\",filtered);\n return filtered;\n}\n\nexport function getMaxImagesCount(props: CaptureInput) {\n if (props && props.captureCountLimit) return props.captureCountLimit;\n else return 1;\n}\n\nexport function getImagesFileName() {\n return `IMG_${Date.now().toString()}.jpg`;\n}\n\nexport async function getCompressionRatio(\n uri: string,\n maxSize: number\n): Promise<number> {\n try {\n let fileInfo = await FileSystem.getInfoAsync(uri, {\n size: true,\n });\n maxSize = Math.min(maxSize, 1024);\n if (fileInfo.exists) {\n let fileSize = fileInfo.size / 1024;\n if (fileSize > maxSize) {\n return maxSize / fileSize;\n } else return 1;\n }\n return 1;\n } catch (error: any) {\n Logger.getInstance().logEvent(\n 'getCompressionRatio',\n error.message,\n LOG_TYPE.SDK_ERROR\n );\n return 1;\n }\n}\n\nexport async function checkCameraPermissionUtil(): Promise<boolean> {\n let response = await ImagePicker.getCameraPermissionsAsync();\n if (response.granted) return true;\n else {\n let resp = await ImagePicker.requestCameraPermissionsAsync();\n return resp.status === PermissionStatus.GRANTED;\n }\n}\n\ninterface responseType {\n cancelled?: boolean;\n uri?: string;\n assets?: any[];\n}\n\ndeclare type ImageResult = {\n uri: string;\n width: number;\n height: number;\n base64?: string;\n};\n\nexport async function captureImage(\n imageWidth: number,\n imageHeight: number,\n fileSize: number\n): Promise<ImageResult | null> {\n try {\n if (!(await checkCameraPermissionUtil())) {\n Alert.alert('Permissions Error', 'Camera permissions not provided!');\n return null;\n }\n\n\n //let response : responseType;\n let uri : string = ''\n let cameraResult = null;\n\n const options = {\n selectionLimit: 1,\n mediaType: 'photo',\n includeBase64: false,\n };\n\n \n\n // You can also use as a promise without 'callback':\n // await launchCamera(options as CameraOptions , response => { \n // if (response?.didCancel){\n // console.log(\"aks:didCancel=\")\n // showToast('User cancelled the action'); \n // console.log('User cancelled the action');\n // } else if (response.errorCode == ('camera_unavailable' || 'permission' || 'others')) {\n // console.log(\"aks:errorCode=\")\n // showToast(response.errorMessage? response.errorMessage : ''); \n // console.log('ImagePicker Error: ', response.errorMessage);\n // } else {\n // console.log(\"aks:errorCode=before\")\n // async()=>{\n // console.log(\"aks:else=after\")\n // let assets = response.assets? response.assets : null; \n // console.log(\"aks:assets=\", assets)\n // // \n // if(assets != null){\n // uri = assets[0].uri as string;\n // //\n // let compressionRatio = await getCompressionRatio(uri, fileSize);\n // console.log(\"aks:compressionRatio=\", compressionRatio)\n \n // //\n // const saveOptions = {\n // compress: compressionRatio,\n // }\n // //\n // console.log(\"aks:uri=blank\")\n // console.log(\"aks:uri=\", uri)\n // let resizedImage = await ImageManipulator.manipulateAsync(uri, [], saveOptions,);\n // //\n // console.log(\"aks:resizedImage=\", resizedImage)\n // //delete file\n // FileSystem.deleteAsync(uri)\n // .then(() =>\n // Logger.getInstance().logEvent('CAPTURE_ET','File deleted success',LOG_TYPE.SDK_DEBUG)\n // ).catch((error) => {\n // Logger.getInstance().logEvent('CAPTURE_ET',error.message,LOG_TYPE.SDK_ERROR);\n // });\n // //\n // return resizedImage;\n // } \n // return null; \n // }\n // } \n // });\n\n await launchCamera(options as CameraOptions , response => { \n if (response?.didCancel){\n console.log(\"aks:didCancel=\")\n showToast('User cancelled the action'); \n console.log('User cancelled the action');\n } else if (response.errorCode == ('camera_unavailable' || 'permission' || 'others')) {\n console.log(\"aks:errorCode=\")\n showToast(response.errorMessage? response.errorMessage : ''); \n console.log('ImagePicker Error: ', response.errorMessage);\n } else {\n console.log(\"aks:response=else-start\")\n // \n let assets = response.assets? response.assets : null; \n console.log(\"aks:assets=\", assets)\n \n //\n if(assets != null){\n uri = assets[0].uri as string;\n }\n\n console.log(\"aks:uri=before\", uri)\n } \n });\n\n console.log(\"aks:uri-after=\", uri)\n // \n if (uri != null) {\n \n let compressionRatio = 0.80 //await getCompressionRatio(uri, fileSize);\n console.log('aks:compressionRatio=', compressionRatio);\n \n\n console.log('aks:uri=', uri);\n\n let resizedImage1 = await Image.compress(uri, {\n compressionMethod: 'manual',\n quality: compressionRatio,\n });\n //\n console.log('aks:resizedImage1=', resizedImage1);\n // If captured image file path does not have prefix file:// then we are addding manually\n if (!resizedImage1.includes('file')) {\n resizedImage1 = 'file://' + resizedImage1; \n }\n\n console.log('aks:resizedImage2=', resizedImage1);\n\n let resizedImageResult: ImageResult = {\n uri: resizedImage1,\n width: imageWidth,\n height: imageHeight,\n base64: '',\n };\n console.log('aks:resizedImageResult=', resizedImageResult);\n\n //delete file\n FileSystem.deleteAsync(uri)\n .then(() =>\n Logger.getInstance().logEvent('CAPTURE_ET','File deleted success',LOG_TYPE.SDK_DEBUG)\n ).catch((error) => {\n Logger.getInstance().logEvent('CAPTURE_ET',error.message,LOG_TYPE.SDK_ERROR);\n });\n //\n\n // console.log(\"resizedImage=before\")\n // console.log(\"resizedImage=\", resizedImage)\n\n return resizedImageResult;\n }\n\n // if(Platform.OS = 'android'){\n // response = {'uri': 'hello'}\n // uri = 'hello';\n // } else {\n // response = await ImagePicker.launchCameraAsync({\n // quality: 1,\n // });\n // let assets = response.assets;\n // if(assets){\n // uri = assets[0].uri\n // } \n // }\n\n // if (response?.cancelled){\n // showToast('User cancelled the action');\n // return null;\n // } \n\n \n // let actionResize: ActionResize = {\n // resize: {\n // width: imageWidth,\n // height: imageHeight,\n // },\n // };\n\n return null\n \n } catch (exception: any) {\n //showToast(`Error ${exception.message}`);\n //console.error('capture image error: ', exception);\n return null;\n }\n}\n\n\nexport async function getCaptureOutput(\n imageDataList: ImageData[],\n captureProps: CaptureInput\n): Promise<CaptureOutput> {\n if (!imageDataList || imageDataList.length === 0)\n return {\n ...(await getBaseETResponse(\n EntityCode.IMAGE_CAPTURE,\n false,\n getEventCodeByET(\n ExecutionTaskID.IMAGE_CAPTURE,\n false,\n captureProps.applicableReasons?.failure\n ),\n '',\n captureProps.mergedObjectiveId,\n ExecutionTaskID.IMAGE_CAPTURE\n )),\n };\n else {\n return {\n ...(await getBaseETResponse(\n EntityCode.IMAGE_CAPTURE,\n true,\n getEventCodeByET(\n ExecutionTaskID.IMAGE_CAPTURE,\n true,\n captureProps.applicableReasons?.success\n ),\n '',\n captureProps.mergedObjectiveId,\n ExecutionTaskID.IMAGE_CAPTURE\n )),\n captures: await getImagesData(imageDataList, captureProps),\n };\n }\n}\n\nasync function getImagesData(\n imagesDataList: ImageData[],\n captureProps: CaptureInput\n): Promise<CapturedImage[]> {\n if (imagesDataList && imagesDataList.length > 0) {\n let output: CapturedImage[] = [];\n const folderName =\n (await DispatchSdkCache.getInstance().getKeyFromCache(\n DispatchSdkCache.KEYS.FMS_FOLDER\n )) ?? 'NULL';\n console.log('getImagesData:',folderName);\n for (const data of imagesDataList) {\n let insertID = await insertDocumentInDB(\n data.id,\n folderName,\n // JSON.stringify(captureProps.jobIds),\n // JSON.stringify(captureProps.objRefs),\n null,\n captureProps.title,\n data.path,\n data.dateTime,\n data.lat,\n data.lng,\n data.accuracy\n );\n if (insertID)\n output.push({\n url: '',\n timestamp: data.timestamp,\n file: { folder: folderName, name: data.id },\n });\n else\n throw new BaseError(\n BaseErrorCodes.SQLiteDBIssue,\n 'Unable to save Image'\n );\n }\n return output;\n } else return [];\n}"],"mappings":"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"}
|
|
@@ -13,7 +13,6 @@ var _Logger = _interopRequireWildcard(require("../../../utils/Logger"));
|
|
|
13
13
|
var _NetworkUtil = _interopRequireDefault(require("../../../utils/NetworkUtil"));
|
|
14
14
|
var _reactNativeImageMarker = _interopRequireWildcard(require("react-native-image-marker"));
|
|
15
15
|
var _reactNativeFs = _interopRequireDefault(require("react-native-fs"));
|
|
16
|
-
var _storage = _interopRequireDefault(require("../../../utils/storage"));
|
|
17
16
|
var _reactNative = require("react-native");
|
|
18
17
|
var _SentrySdkConstants = require("../../../analytics/sentry/SentrySdkConstants");
|
|
19
18
|
var _SentryAnalyticsUtils = require("../../../analytics/sentry/SentryAnalyticsUtils");
|
|
@@ -161,17 +160,9 @@ class DocumentSyncManager {
|
|
|
161
160
|
}
|
|
162
161
|
|
|
163
162
|
let fontSize = 14;
|
|
164
|
-
let fileSize = await _storage.default.getInstance().getItem('maxSize'); // File max size
|
|
165
|
-
let cRatio = await _storage.default.getInstance().getItem('cRatio'); // File compression ratio
|
|
166
|
-
let nFileSize = Number(fileSize);
|
|
167
|
-
let ncRatio = Number(cRatio);
|
|
168
|
-
let wholeRatio = Math.round(ncRatio * 100); // Compression ratio to be made
|
|
169
163
|
if (_reactNative.Platform.OS !== 'android') {
|
|
170
164
|
fontSize = 28;
|
|
171
165
|
}
|
|
172
|
-
if (wholeRatio >= 75) {
|
|
173
|
-
wholeRatio = 25;
|
|
174
|
-
}
|
|
175
166
|
const options = {
|
|
176
167
|
backgroundImage: {
|
|
177
168
|
// Image for overlay
|
|
@@ -197,11 +188,8 @@ class DocumentSyncManager {
|
|
|
197
188
|
}
|
|
198
189
|
}
|
|
199
190
|
}],
|
|
200
|
-
scale:
|
|
201
|
-
quality: 100
|
|
202
|
-
// Compressio ratio in which file will generate
|
|
203
|
-
maxSize: nFileSize,
|
|
204
|
-
// Max file size in which file will generate
|
|
191
|
+
scale: 0,
|
|
192
|
+
quality: 100,
|
|
205
193
|
filename: pFilePath,
|
|
206
194
|
saveFormat: _reactNativeImageMarker.ImageFormat.jpg // Saving in jpeg format
|
|
207
195
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_DocumentManager","_interopRequireDefault","require","_DocumentHttpClient","_utils","_BaseError","_ErrorCodes","_interopRequireWildcard","_Logger","_NetworkUtil","_reactNativeImageMarker","_reactNativeFs","_storage","_reactNative","_SentrySdkConstants","_SentryAnalyticsUtils","_class","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_defineProperty","key","value","_toPropertyKey","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","latlngToDms","DocumentSyncManager","retries","_retries","constructor","init","baseURL","retryCount","isEmptyOrBlank","BaseError","BaseErrorCodes","InvalidBaseURL","maxRetryCount","documentHttpClient","DocumentHttpClient","getInstance","instance","startDocumentSync","inProgress","hasNetwork","NetworkUtil","isAvailableAsync","checkForInitialization","docManager","DocumentManager","documentRows","getUnsyncedDocument","length","uploadDocToServer","Logger","logEvent","LOG_TYPE","SDK_INFO","error","isSyncPending","leftDocuments","getAllUnsyncedDocs","insertDocument","fmsFolderID","data","base64","desc","dspID","filePath","fileType","fileName","geoTimeStamp","processedFilePath","priority","arguments","InvalidArgumentError","InvalidArgumentsError","_this$docManager","console","log","insertResponse","forceDocumentSync","updateDocument","documentRow","fmsID","markDocumentSynced","id","err","message","SDK_WARNING","updateDocumentProcessedPath","origialFilePath","processedPath","updateProcesedFilePath","updateDocError","uploadError","updateDocSyncError","SyncManagerNotInitialized","processImageData","processed_file_path","pFilePath","file_name","strGeoStamp","geo_timestamp","objGeoStamp","JSON","parse","dateTime","lat","lng","accuracy","strDMS","strDMSWithAccuracy","fontSize","fileSize","Storage","getItem","cRatio","nFileSize","ncRatio","wholeRatio","Math","round","Platform","OS","options","backgroundImage","src","file_path","scale","watermarkTexts","text","position","Position","topLeft","style","color","fontName","textBackgroundStyle","padding","type","TextBackgroundType","none","quality","maxSize","filename","saveFormat","ImageFormat","jpg","Marker","markText","completeFilePath","includes","processBase64Data","imagePath","RNFS","TemporaryDirectoryPath","writeFile","processedBase64","splittedDase64Data","split","processPODData","_this$documentHttpCli","docRow","uploadDocument","extraParameters","folderName","fms_folder_id","flattenObject","SDK_ERROR","_error$response","_error$response2","cta","fireEventWithScreenName","severityLevel","SeverityLevelValue","ERROR","eventName","SentryEventNameSdkConstants","API_ERROR","screenName","extraParams","stringify","response","status","getAllDocuments","dispatchID","clearSyncedDocs","deleteAllSyncedDocuments","exports"],"sources":["DocumentSyncManager.ts"],"sourcesContent":["import type { DocumentRow } from '../DBConfig';\nimport DocumentManager from './DocumentManager';\nimport DocumentHttpClient from './DocumentHttpClient';\nimport { isEmptyOrBlank, flattenObject } from '../../../utils/utils';\nimport { BaseError } from '../../../errors/BaseError';\nimport BaseErrorCodes, {\n InvalidArgumentsError,\n InvalidBaseURL,\n SyncManagerNotInitialized,\n} from '../../../errors/ErrorCodes';\nimport Logger, { LOG_TYPE } from '../../../utils/Logger';\nimport type { SQLResultSet } from 'expo-sqlite';\nimport NetworkUtil from '../../../utils/NetworkUtil';\nimport Marker, {\n Position,\n TextBackgroundType,\n ImageFormat,\n} from 'react-native-image-marker';\nimport RNFS from 'react-native-fs';\nimport Storage from '../../../utils/storage';\nimport { Platform } from 'react-native';\nimport { ScreenNameSdkConstants, SentryEventNameSdkConstants, SeverityLevelValue } from '../../../analytics/sentry/SentrySdkConstants';\nimport { fireEventWithScreenName } from '../../../analytics/sentry/SentryAnalyticsUtils';\nconst latlngToDms = require('latlng-to-dms');\n\n\nexport default class DocumentSyncManager {\n private documentHttpClient: DocumentHttpClient | undefined;\n private inProgress: boolean = false;\n private static instance: DocumentSyncManager;\n private docManager: DocumentManager | undefined;\n private maxRetryCount: number = 3;\n private _retries = 0;\n\n get retries(): number {\n return this._retries;\n }\n\n set retries(value: number) {\n this._retries = value;\n }\n\n private constructor() {}\n\n public init(baseURL: string, retryCount: number) {\n if (isEmptyOrBlank(baseURL))\n throw new BaseError(BaseErrorCodes.InvalidBaseURL, InvalidBaseURL);\n this.maxRetryCount = retryCount;\n this.documentHttpClient = new DocumentHttpClient(baseURL);\n }\n\n public static getInstance(): DocumentSyncManager {\n if (!DocumentSyncManager.instance) {\n DocumentSyncManager.instance = new DocumentSyncManager();\n }\n return DocumentSyncManager.instance;\n }\n\n public async startDocumentSync(): Promise<void> {\n if (!this.inProgress && this._retries < this.maxRetryCount) {\n this.inProgress = true;\n const hasNetwork = await NetworkUtil.isAvailableAsync();\n try {\n this.checkForInitialization();\n if (!this.docManager) {\n this.docManager = await DocumentManager.getInstance();\n }\n if (hasNetwork) {\n let documentRows: DocumentRow[] =\n await this.docManager.getUnsyncedDocument();\n if (documentRows?.length > 0) {\n await this.uploadDocToServer(documentRows[0]);\n } else {\n Logger.getInstance().logEvent(\n 'startDocumentSync',\n 'No data to sync',\n LOG_TYPE.SDK_INFO\n );\n }\n } else {\n Logger.getInstance().logEvent(\n 'startDocumentSync',\n 'No Network',\n LOG_TYPE.SDK_INFO\n );\n }\n } catch (error: any) {\n } finally {\n this.inProgress = false;\n if ((await this.isSyncPending()) && hasNetwork) {\n await this.startDocumentSync();\n }\n }\n } else {\n Logger.getInstance().logEvent(\n 'startDocumentSync',\n 'sync already in progress ',\n LOG_TYPE.SDK_INFO\n );\n }\n }\n\n public async isSyncPending(): Promise<boolean> {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n let leftDocuments = await this.docManager.getAllUnsyncedDocs();\n return leftDocuments?.length > 0 && this._retries < this.maxRetryCount;\n }\n\n public async insertDocument(\n fmsFolderID: string | null,\n data: string | null,\n base64: boolean,\n desc: string,\n dspID: string,\n // jobID: string,\n // objRef: string,\n filePath: string | null,\n fileType: string,\n fileName: string,\n geoTimeStamp: string,\n processedFilePath: string,\n priority: number = 1\n ): Promise<SQLResultSet> {\n if (\n isEmptyOrBlank(desc) ||\n isEmptyOrBlank(dspID) ||\n // isEmptyOrBlank(jobID) ||\n // isEmptyOrBlank(objRef) ||\n isEmptyOrBlank(fileType) ||\n isEmptyOrBlank(fileName) ||\n (base64 && isEmptyOrBlank(data)) ||\n (!base64 && isEmptyOrBlank(filePath))\n )\n throw new BaseError(\n BaseErrorCodes.InvalidArgumentError,\n InvalidArgumentsError\n );\n else {\n if (!this.docManager) {\n Logger.getInstance().logEvent(\n 'insertDocument',\n 'INIT DOC SYNC AGAIN',\n LOG_TYPE.SDK_INFO\n );\n this.docManager = await DocumentManager.getInstance();\n }\n console.log('insertDocument1:',fmsFolderID);\n let insertResponse = await this.docManager?.insertDocument(\n fmsFolderID,\n desc,\n dspID,\n // jobID,\n // objRef,\n base64,\n fileName,\n fileType,\n data,\n filePath,\n geoTimeStamp,\n processedFilePath,\n priority\n );\n return insertResponse;\n }\n }\n\n public async forceDocumentSync() {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n this._retries = 0;\n await this.startDocumentSync();\n }\n\n private async updateDocument(documentRow: DocumentRow, fmsID: string) {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n try {\n await this.docManager.markDocumentSynced(documentRow.id, fmsID);\n } catch (err: any) {\n Logger.getInstance().logEvent(\n 'updateDocument',\n err.message,\n LOG_TYPE.SDK_WARNING\n );\n }\n }\n\n // This function is updating processed_file_path column for the base64 overlayed data and overlayed image file for POD. Also if it is base 64 then it is also storing temprary file path in file_path as original bae64 image.\n private async updateDocumentProcessedPath(\n documentRow: DocumentRow,\n origialFilePath: String,\n processedPath: String\n ) {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n try {\n await this.docManager.updateProcesedFilePath(\n documentRow.id,\n origialFilePath,\n processedPath\n );\n } catch (err: any) {\n Logger.getInstance().logEvent(\n 'updateDocument',\n err.message,\n LOG_TYPE.SDK_WARNING\n );\n }\n }\n\n private async updateDocError(documentRow: DocumentRow, uploadError: string) {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n try {\n await this.docManager.updateDocSyncError(documentRow.id, uploadError);\n } catch (err: any) {\n Logger.getInstance().logEvent(\n 'updateDocError',\n err.message,\n LOG_TYPE.SDK_WARNING\n );\n }\n }\n private checkForInitialization() {\n if (!this.documentHttpClient) {\n throw new BaseError(\n BaseErrorCodes.SyncManagerNotInitialized,\n SyncManagerNotInitialized\n );\n }\n }\n\n // This function will generate overlay image and update documents table for processed_file_path columns with overlayed image path.\n private async processImageData(documentRow: DocumentRow) {\n // If processed_file_path of overlayed image already existing then do not generate it again.\n if (\n documentRow.processed_file_path === null ||\n documentRow.processed_file_path === ''\n ) {\n let pFilePath = 'processed_' + documentRow.file_name; // File name for processed file.\n let strGeoStamp = documentRow.geo_timestamp; // Saved geostamp string\n let objGeoStamp = JSON.parse(strGeoStamp); // Conversion to geostamp object\n let dateTime = objGeoStamp.dateTime; // Date time stamp in UTC format\n let lat = objGeoStamp.lat; // Latitide\n let lng = objGeoStamp.lng; // Longitude\n let accuracy = objGeoStamp.accuracy; // Location accuracy\n let strDMS = latlngToDms(`${lat}, ${lng}`); // Location in degree format\n let strDMSWithAccuracy = strDMS; \n if (accuracy !== '') {\n strDMSWithAccuracy = strDMS + ' (Accuracy: ' + accuracy + 'm)'; // Appedning accuracy in location \n }\n let fontSize = 14;\n \n let fileSize = await Storage.getInstance().getItem('maxSize'); // File max size\n let cRatio = await Storage.getInstance().getItem('cRatio'); // File compression ratio\n let nFileSize = Number(fileSize);\n let ncRatio = Number(cRatio);\n let wholeRatio = Math.round(ncRatio * 100); // Compression ratio to be made\n if (Platform.OS !== 'android') {\n fontSize = 28;\n }\n if(wholeRatio >= 75){\n wholeRatio = 25;\n }\n const options = {\n backgroundImage: { // Image for overlay\n src: documentRow.file_path,\n scale: 1,\n },\n watermarkTexts: [ \n {\n text: `${dateTime}\\n${strDMSWithAccuracy}`, //Overlay text\n position: {\n position: Position.topLeft, // Overlay text position\n },\n style: { // Style for overlay\n color: '#ffffff',\n fontSize: fontSize,\n fontName: 'Arial',\n textBackgroundStyle: {\n padding: '1% 1%',\n type: TextBackgroundType.none,\n color: '#444444CC',\n },\n },\n },\n ],\n scale: 1,\n quality: 100 - wholeRatio, // Compressio ratio in which file will generate\n maxSize: nFileSize, // Max file size in which file will generate\n filename: pFilePath,\n saveFormat: ImageFormat.jpg, // Saving in jpeg format\n };\n let processedFilePath = await Marker.markText(options); // Generating overlay image\n if (processedFilePath !== null && processedFilePath !== '') {\n let completeFilePath = processedFilePath;\n // If processd image file path does not have prefix file:// then we are addding manually\n if (!processedFilePath.includes('file')) {\n completeFilePath = 'file://' + processedFilePath;\n }\n // Updating document document table with overlayed image path\n this.updateDocumentProcessedPath(\n documentRow,\n documentRow.file_path, //original file path catprued from camera\n completeFilePath // completeFilePath is the path with file:// of processed file \n );\n documentRow.processed_file_path = completeFilePath; \n }\n }\n return documentRow;\n }\n\n // This function will generate overlay base64 data and update documents table for processed_file_path columns with overlayed base64 data.\n private async processBase64Data(documentRow: DocumentRow) {\n // If base64 overlayed data already existing then do not generate it again.\n if (\n documentRow.processed_file_path === null ||\n documentRow.processed_file_path === ''\n ) {\n let filePath = '';\n // If templrary base 64 file already exist then do not create again\n if (documentRow.file_path === null || documentRow.file_path === '') {\n const imagePath = `${RNFS.TemporaryDirectoryPath}/${documentRow.file_name}`;\n await RNFS.writeFile(imagePath, documentRow.data, 'base64'); // Write file to temprary location\n filePath = imagePath;\n // If file generated frommbase64 data does not have file:// then we are adding manually.\n if (!imagePath.includes('file')) {\n filePath = `file://${imagePath}`;\n }\n documentRow.file_path = filePath;\n } else {\n filePath = documentRow.file_path;\n }\n let pFilePath = 'processed_' + documentRow.file_name; // File name for processed file.\n let strGeoStamp = documentRow.geo_timestamp; // Saved geostamp string\n let objGeoStamp = JSON.parse(strGeoStamp); // Conversion to geostamp object\n let dateTime = objGeoStamp.dateTime; // Date time stamp in UTC format\n let lat = objGeoStamp.lat; // Latitide\n let lng = objGeoStamp.lng; // Longitude\n let accuracy = objGeoStamp.accuracy; // Location accuracy\n let strDMS = latlngToDms(`${lat}, ${lng}`); // Location in degree format\n let strDMSWithAccuracy = strDMS; \n if (accuracy !== '') {\n strDMSWithAccuracy = strDMS + ' (Accuracy: ' + accuracy + 'm)'; // Appedning accuracy in location \n }\n const options = {\n backgroundImage: {\n src: filePath, // Image for overlay\n scale: 1,\n },\n watermarkTexts: [\n {\n text: `${dateTime}\\n${strDMSWithAccuracy}`, // Ooverlay text\n position: {\n position: Position.topLeft, // Overlay text position\n },\n style: { // Style for overlay\n color: '#ffffff',\n fontSize: 14,\n fontName: 'Arial',\n textBackgroundStyle: {\n padding: '1% 1%',\n type: TextBackgroundType.none,\n color: '#444444CC',\n },\n },\n },\n ],\n scale: 1,\n quality: 100,\n filename: pFilePath,\n saveFormat: ImageFormat.base64, // Saving in base6 format\n };\n let processedBase64 = await Marker.markText(options); // Generating overlay image\n if (processedBase64 !== null && processedBase64 !== '') {\n // Fetching base64 data from processed data.\n var splittedDase64Data = processedBase64.split(\n 'data:image/png;base64,'\n );\n // Updating document document table with overlayed base64 data\n await this.updateDocumentProcessedPath(\n documentRow,\n filePath,\n splittedDase64Data[1]\n );\n documentRow.processed_file_path = splittedDase64Data[1];\n }\n }\n return documentRow;\n }\n\n // This function will calling respective overlay method for base64 (for signature POD) or image (for image POD).\n private async processPODData(documentRow: DocumentRow) {\n if (documentRow.base64 && documentRow.data != null) {\n return await this.processBase64Data(documentRow);\n } else {\n return await this.processImageData(documentRow);\n }\n }\n\n private async uploadDocToServer(documentRow: DocumentRow) {\n try {\n let docRow = await this.processPODData(documentRow);\n console.log('uploadDocToServer999:', docRow);\n let fmsID = await this.documentHttpClient?.uploadDocument(documentRow);\n\n let extraParameters = {\n fmsID: fmsID ?? '',\n fileName: docRow.file_name,\n folderName: docRow.fms_folder_id\n };\n // TODO: SOLELY DEPENDS ON FMS_ID WHICH IS WRONG => IT SHOULD BE Response.status = 202\n if (fmsID) {\n this._retries = 0;\n await this.updateDocument(docRow, fmsID);\n } else {\n this._retries++;\n Logger.getInstance().logEvent(\n 'uploadDocToServer-empty-fms-id',\n flattenObject(extraParameters),\n LOG_TYPE.SDK_ERROR\n );\n await this.updateDocError(docRow, 'Unexpected Error');\n }\n } catch (error: any) {\n const cta = 'uploadDocToServer-error';\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.ERROR,\n eventName: SentryEventNameSdkConstants.API_ERROR,\n screenName: cta,\n cta: cta,\n extraParams: {\n error: error.message,\n },\n });\n this._retries++;\n Logger.getInstance().logEvent(\n 'uploadDocToServer-sync-error',\n error.message,\n LOG_TYPE.SDK_ERROR\n );\n await this.updateDocError(\n documentRow,\n JSON.stringify({\n message: error.message,\n error: JSON.stringify(error?.response?.data),\n status: error?.response?.status,\n })\n );\n }\n }\n\n public async getAllDocuments(dispatchID?: string): Promise<DocumentRow[]> {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n return this.docManager.getAllDocuments(dispatchID);\n }\n\n public async clearSyncedDocs(dspID: string) {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n if (dspID) await this.docManager.deleteAllSyncedDocuments(dspID);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_DocumentManager","_interopRequireDefault","require","_DocumentHttpClient","_utils","_BaseError","_ErrorCodes","_interopRequireWildcard","_Logger","_NetworkUtil","_reactNativeImageMarker","_reactNativeFs","_reactNative","_SentrySdkConstants","_SentryAnalyticsUtils","_class","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_defineProperty","key","value","_toPropertyKey","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","latlngToDms","DocumentSyncManager","retries","_retries","constructor","init","baseURL","retryCount","isEmptyOrBlank","BaseError","BaseErrorCodes","InvalidBaseURL","maxRetryCount","documentHttpClient","DocumentHttpClient","getInstance","instance","startDocumentSync","inProgress","hasNetwork","NetworkUtil","isAvailableAsync","checkForInitialization","docManager","DocumentManager","documentRows","getUnsyncedDocument","length","uploadDocToServer","Logger","logEvent","LOG_TYPE","SDK_INFO","error","isSyncPending","leftDocuments","getAllUnsyncedDocs","insertDocument","fmsFolderID","data","base64","desc","dspID","filePath","fileType","fileName","geoTimeStamp","processedFilePath","priority","arguments","InvalidArgumentError","InvalidArgumentsError","_this$docManager","console","log","insertResponse","forceDocumentSync","updateDocument","documentRow","fmsID","markDocumentSynced","id","err","message","SDK_WARNING","updateDocumentProcessedPath","origialFilePath","processedPath","updateProcesedFilePath","updateDocError","uploadError","updateDocSyncError","SyncManagerNotInitialized","processImageData","processed_file_path","pFilePath","file_name","strGeoStamp","geo_timestamp","objGeoStamp","JSON","parse","dateTime","lat","lng","accuracy","strDMS","strDMSWithAccuracy","fontSize","Platform","OS","options","backgroundImage","src","file_path","scale","watermarkTexts","text","position","Position","topLeft","style","color","fontName","textBackgroundStyle","padding","type","TextBackgroundType","none","quality","filename","saveFormat","ImageFormat","jpg","Marker","markText","completeFilePath","includes","processBase64Data","imagePath","RNFS","TemporaryDirectoryPath","writeFile","processedBase64","splittedDase64Data","split","processPODData","_this$documentHttpCli","docRow","uploadDocument","extraParameters","folderName","fms_folder_id","flattenObject","SDK_ERROR","_error$response","_error$response2","cta","fireEventWithScreenName","severityLevel","SeverityLevelValue","ERROR","eventName","SentryEventNameSdkConstants","API_ERROR","screenName","extraParams","stringify","response","status","getAllDocuments","dispatchID","clearSyncedDocs","deleteAllSyncedDocuments","exports"],"sources":["DocumentSyncManager.ts"],"sourcesContent":["import type { DocumentRow } from '../DBConfig';\nimport DocumentManager from './DocumentManager';\nimport DocumentHttpClient from './DocumentHttpClient';\nimport { isEmptyOrBlank, flattenObject } from '../../../utils/utils';\nimport { BaseError } from '../../../errors/BaseError';\nimport BaseErrorCodes, {\n InvalidArgumentsError,\n InvalidBaseURL,\n SyncManagerNotInitialized,\n} from '../../../errors/ErrorCodes';\nimport Logger, { LOG_TYPE } from '../../../utils/Logger';\nimport type { SQLResultSet } from 'expo-sqlite';\nimport NetworkUtil from '../../../utils/NetworkUtil';\nimport Marker, {\n Position,\n TextBackgroundType,\n ImageFormat,\n} from 'react-native-image-marker';\nimport RNFS from 'react-native-fs';\nimport Storage from '../../../utils/storage';\nimport { Platform } from 'react-native';\nimport { ScreenNameSdkConstants, SentryEventNameSdkConstants, SeverityLevelValue } from '../../../analytics/sentry/SentrySdkConstants';\nimport { fireEventWithScreenName } from '../../../analytics/sentry/SentryAnalyticsUtils';\nconst latlngToDms = require('latlng-to-dms');\n\n\nexport default class DocumentSyncManager {\n private documentHttpClient: DocumentHttpClient | undefined;\n private inProgress: boolean = false;\n private static instance: DocumentSyncManager;\n private docManager: DocumentManager | undefined;\n private maxRetryCount: number = 3;\n private _retries = 0;\n\n get retries(): number {\n return this._retries;\n }\n\n set retries(value: number) {\n this._retries = value;\n }\n\n private constructor() {}\n\n public init(baseURL: string, retryCount: number) {\n if (isEmptyOrBlank(baseURL))\n throw new BaseError(BaseErrorCodes.InvalidBaseURL, InvalidBaseURL);\n this.maxRetryCount = retryCount;\n this.documentHttpClient = new DocumentHttpClient(baseURL);\n }\n\n public static getInstance(): DocumentSyncManager {\n if (!DocumentSyncManager.instance) {\n DocumentSyncManager.instance = new DocumentSyncManager();\n }\n return DocumentSyncManager.instance;\n }\n\n public async startDocumentSync(): Promise<void> {\n if (!this.inProgress && this._retries < this.maxRetryCount) {\n this.inProgress = true;\n const hasNetwork = await NetworkUtil.isAvailableAsync();\n try {\n this.checkForInitialization();\n if (!this.docManager) {\n this.docManager = await DocumentManager.getInstance();\n }\n if (hasNetwork) {\n let documentRows: DocumentRow[] =\n await this.docManager.getUnsyncedDocument();\n if (documentRows?.length > 0) {\n await this.uploadDocToServer(documentRows[0]);\n } else {\n Logger.getInstance().logEvent(\n 'startDocumentSync',\n 'No data to sync',\n LOG_TYPE.SDK_INFO\n );\n }\n } else {\n Logger.getInstance().logEvent(\n 'startDocumentSync',\n 'No Network',\n LOG_TYPE.SDK_INFO\n );\n }\n } catch (error: any) {\n } finally {\n this.inProgress = false;\n if ((await this.isSyncPending()) && hasNetwork) {\n await this.startDocumentSync();\n }\n }\n } else {\n Logger.getInstance().logEvent(\n 'startDocumentSync',\n 'sync already in progress ',\n LOG_TYPE.SDK_INFO\n );\n }\n }\n\n public async isSyncPending(): Promise<boolean> {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n let leftDocuments = await this.docManager.getAllUnsyncedDocs();\n return leftDocuments?.length > 0 && this._retries < this.maxRetryCount;\n }\n\n public async insertDocument(\n fmsFolderID: string | null,\n data: string | null,\n base64: boolean,\n desc: string,\n dspID: string,\n // jobID: string,\n // objRef: string,\n filePath: string | null,\n fileType: string,\n fileName: string,\n geoTimeStamp: string,\n processedFilePath: string,\n priority: number = 1\n ): Promise<SQLResultSet> {\n if (\n isEmptyOrBlank(desc) ||\n isEmptyOrBlank(dspID) ||\n // isEmptyOrBlank(jobID) ||\n // isEmptyOrBlank(objRef) ||\n isEmptyOrBlank(fileType) ||\n isEmptyOrBlank(fileName) ||\n (base64 && isEmptyOrBlank(data)) ||\n (!base64 && isEmptyOrBlank(filePath))\n )\n throw new BaseError(\n BaseErrorCodes.InvalidArgumentError,\n InvalidArgumentsError\n );\n else {\n if (!this.docManager) {\n Logger.getInstance().logEvent(\n 'insertDocument',\n 'INIT DOC SYNC AGAIN',\n LOG_TYPE.SDK_INFO\n );\n this.docManager = await DocumentManager.getInstance();\n }\n console.log('insertDocument1:',fmsFolderID);\n let insertResponse = await this.docManager?.insertDocument(\n fmsFolderID,\n desc,\n dspID,\n // jobID,\n // objRef,\n base64,\n fileName,\n fileType,\n data,\n filePath,\n geoTimeStamp,\n processedFilePath,\n priority\n );\n return insertResponse;\n }\n }\n\n public async forceDocumentSync() {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n this._retries = 0;\n await this.startDocumentSync();\n }\n\n private async updateDocument(documentRow: DocumentRow, fmsID: string) {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n try {\n await this.docManager.markDocumentSynced(documentRow.id, fmsID);\n } catch (err: any) {\n Logger.getInstance().logEvent(\n 'updateDocument',\n err.message,\n LOG_TYPE.SDK_WARNING\n );\n }\n }\n\n // This function is updating processed_file_path column for the base64 overlayed data and overlayed image file for POD. Also if it is base 64 then it is also storing temprary file path in file_path as original bae64 image.\n private async updateDocumentProcessedPath(\n documentRow: DocumentRow,\n origialFilePath: String,\n processedPath: String\n ) {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n try {\n await this.docManager.updateProcesedFilePath(\n documentRow.id,\n origialFilePath,\n processedPath\n );\n } catch (err: any) {\n Logger.getInstance().logEvent(\n 'updateDocument',\n err.message,\n LOG_TYPE.SDK_WARNING\n );\n }\n }\n\n private async updateDocError(documentRow: DocumentRow, uploadError: string) {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n try {\n await this.docManager.updateDocSyncError(documentRow.id, uploadError);\n } catch (err: any) {\n Logger.getInstance().logEvent(\n 'updateDocError',\n err.message,\n LOG_TYPE.SDK_WARNING\n );\n }\n }\n private checkForInitialization() {\n if (!this.documentHttpClient) {\n throw new BaseError(\n BaseErrorCodes.SyncManagerNotInitialized,\n SyncManagerNotInitialized\n );\n }\n }\n\n // This function will generate overlay image and update documents table for processed_file_path columns with overlayed image path.\n private async processImageData(documentRow: DocumentRow) {\n // If processed_file_path of overlayed image already existing then do not generate it again.\n if (\n documentRow.processed_file_path === null ||\n documentRow.processed_file_path === ''\n ) {\n let pFilePath = 'processed_' + documentRow.file_name; // File name for processed file.\n let strGeoStamp = documentRow.geo_timestamp; // Saved geostamp string\n let objGeoStamp = JSON.parse(strGeoStamp); // Conversion to geostamp object\n let dateTime = objGeoStamp.dateTime; // Date time stamp in UTC format\n let lat = objGeoStamp.lat; // Latitide\n let lng = objGeoStamp.lng; // Longitude\n let accuracy = objGeoStamp.accuracy; // Location accuracy\n let strDMS = latlngToDms(`${lat}, ${lng}`); // Location in degree format\n let strDMSWithAccuracy = strDMS; \n if (accuracy !== '') {\n strDMSWithAccuracy = strDMS + ' (Accuracy: ' + accuracy + 'm)'; // Appedning accuracy in location \n }\n let fontSize = 14;\n if (Platform.OS !== 'android') {\n fontSize = 28;\n }\n const options = {\n backgroundImage: { // Image for overlay\n src: documentRow.file_path,\n scale: 1,\n },\n watermarkTexts: [ \n {\n text: `${dateTime}\\n${strDMSWithAccuracy}`, //Overlay text\n position: {\n position: Position.topLeft, // Overlay text position\n },\n style: { // Style for overlay\n color: '#ffffff',\n fontSize: fontSize,\n fontName: 'Arial',\n textBackgroundStyle: {\n padding: '1% 1%',\n type: TextBackgroundType.none,\n color: '#444444CC',\n },\n },\n },\n ],\n scale: 0,\n quality: 100, \n filename: pFilePath,\n saveFormat: ImageFormat.jpg, // Saving in jpeg format\n };\n let processedFilePath = await Marker.markText(options); // Generating overlay image\n if (processedFilePath !== null && processedFilePath !== '') {\n let completeFilePath = processedFilePath;\n // If processd image file path does not have prefix file:// then we are addding manually\n if (!processedFilePath.includes('file')) {\n completeFilePath = 'file://' + processedFilePath;\n }\n // Updating document document table with overlayed image path\n this.updateDocumentProcessedPath(\n documentRow,\n documentRow.file_path, //original file path catprued from camera\n completeFilePath // completeFilePath is the path with file:// of processed file \n );\n documentRow.processed_file_path = completeFilePath; \n }\n }\n return documentRow;\n }\n\n // This function will generate overlay base64 data and update documents table for processed_file_path columns with overlayed base64 data.\n private async processBase64Data(documentRow: DocumentRow) {\n // If base64 overlayed data already existing then do not generate it again.\n if (\n documentRow.processed_file_path === null ||\n documentRow.processed_file_path === ''\n ) {\n let filePath = '';\n // If templrary base 64 file already exist then do not create again\n if (documentRow.file_path === null || documentRow.file_path === '') {\n const imagePath = `${RNFS.TemporaryDirectoryPath}/${documentRow.file_name}`;\n await RNFS.writeFile(imagePath, documentRow.data, 'base64'); // Write file to temprary location\n filePath = imagePath;\n // If file generated frommbase64 data does not have file:// then we are adding manually.\n if (!imagePath.includes('file')) {\n filePath = `file://${imagePath}`;\n }\n documentRow.file_path = filePath;\n } else {\n filePath = documentRow.file_path;\n }\n let pFilePath = 'processed_' + documentRow.file_name; // File name for processed file.\n let strGeoStamp = documentRow.geo_timestamp; // Saved geostamp string\n let objGeoStamp = JSON.parse(strGeoStamp); // Conversion to geostamp object\n let dateTime = objGeoStamp.dateTime; // Date time stamp in UTC format\n let lat = objGeoStamp.lat; // Latitide\n let lng = objGeoStamp.lng; // Longitude\n let accuracy = objGeoStamp.accuracy; // Location accuracy\n let strDMS = latlngToDms(`${lat}, ${lng}`); // Location in degree format\n let strDMSWithAccuracy = strDMS; \n if (accuracy !== '') {\n strDMSWithAccuracy = strDMS + ' (Accuracy: ' + accuracy + 'm)'; // Appedning accuracy in location \n }\n const options = {\n backgroundImage: {\n src: filePath, // Image for overlay\n scale: 1,\n },\n watermarkTexts: [\n {\n text: `${dateTime}\\n${strDMSWithAccuracy}`, // Ooverlay text\n position: {\n position: Position.topLeft, // Overlay text position\n },\n style: { // Style for overlay\n color: '#ffffff',\n fontSize: 14,\n fontName: 'Arial',\n textBackgroundStyle: {\n padding: '1% 1%',\n type: TextBackgroundType.none,\n color: '#444444CC',\n },\n },\n },\n ],\n scale: 1,\n quality: 100,\n filename: pFilePath,\n saveFormat: ImageFormat.base64, // Saving in base6 format\n };\n let processedBase64 = await Marker.markText(options); // Generating overlay image\n if (processedBase64 !== null && processedBase64 !== '') {\n // Fetching base64 data from processed data.\n var splittedDase64Data = processedBase64.split(\n 'data:image/png;base64,'\n );\n // Updating document document table with overlayed base64 data\n await this.updateDocumentProcessedPath(\n documentRow,\n filePath,\n splittedDase64Data[1]\n );\n documentRow.processed_file_path = splittedDase64Data[1];\n }\n }\n return documentRow;\n }\n\n // This function will calling respective overlay method for base64 (for signature POD) or image (for image POD).\n private async processPODData(documentRow: DocumentRow) {\n if (documentRow.base64 && documentRow.data != null) {\n return await this.processBase64Data(documentRow);\n } else {\n return await this.processImageData(documentRow);\n }\n }\n\n private async uploadDocToServer(documentRow: DocumentRow) {\n try {\n let docRow = await this.processPODData(documentRow);\n console.log('uploadDocToServer999:', docRow);\n let fmsID = await this.documentHttpClient?.uploadDocument(documentRow);\n\n let extraParameters = {\n fmsID: fmsID ?? '',\n fileName: docRow.file_name,\n folderName: docRow.fms_folder_id\n };\n // TODO: SOLELY DEPENDS ON FMS_ID WHICH IS WRONG => IT SHOULD BE Response.status = 202\n if (fmsID) {\n this._retries = 0;\n await this.updateDocument(docRow, fmsID);\n } else {\n this._retries++;\n Logger.getInstance().logEvent(\n 'uploadDocToServer-empty-fms-id',\n flattenObject(extraParameters),\n LOG_TYPE.SDK_ERROR\n );\n await this.updateDocError(docRow, 'Unexpected Error');\n }\n } catch (error: any) {\n const cta = 'uploadDocToServer-error';\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.ERROR,\n eventName: SentryEventNameSdkConstants.API_ERROR,\n screenName: cta,\n cta: cta,\n extraParams: {\n error: error.message,\n },\n });\n this._retries++;\n Logger.getInstance().logEvent(\n 'uploadDocToServer-sync-error',\n error.message,\n LOG_TYPE.SDK_ERROR\n );\n await this.updateDocError(\n documentRow,\n JSON.stringify({\n message: error.message,\n error: JSON.stringify(error?.response?.data),\n status: error?.response?.status,\n })\n );\n }\n }\n\n public async getAllDocuments(dispatchID?: string): Promise<DocumentRow[]> {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n return this.docManager.getAllDocuments(dispatchID);\n }\n\n public async clearSyncedDocs(dspID: string) {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n if (dspID) await this.docManager.deleteAllSyncedDocuments(dspID);\n }\n}\n"],"mappings":"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"}
|
|
@@ -13,7 +13,6 @@ import DispatchSdkCache from '../../../manager/sdk/DispatchSdkCache';
|
|
|
13
13
|
import { insertDocumentInDB } from '../../../utils/SyncManagerUtils';
|
|
14
14
|
import { launchCamera } from 'react-native-image-picker';
|
|
15
15
|
import { Image } from 'react-native-compressor';
|
|
16
|
-
import Storage from '../../../utils/storage';
|
|
17
16
|
export async function deleteImage(imageData, images) {
|
|
18
17
|
await FileSystem.deleteAsync(imageData.path);
|
|
19
18
|
let filtered = images.filter(ele => ele).filter(img => img.id.toString().toLowerCase() !== imageData.id.toString().toLowerCase());
|
|
@@ -140,10 +139,8 @@ export async function captureImage(imageWidth, imageHeight, fileSize) {
|
|
|
140
139
|
console.log("aks:uri-after=", uri);
|
|
141
140
|
//
|
|
142
141
|
if (uri != null) {
|
|
143
|
-
let compressionRatio = await getCompressionRatio(uri, fileSize);
|
|
142
|
+
let compressionRatio = 0.80; //await getCompressionRatio(uri, fileSize);
|
|
144
143
|
console.log('aks:compressionRatio=', compressionRatio);
|
|
145
|
-
Storage.getInstance().setItem('maxSize', String(fileSize));
|
|
146
|
-
Storage.getInstance().setItem('cRatio', String(compressionRatio));
|
|
147
144
|
console.log('aks:uri=', uri);
|
|
148
145
|
let resizedImage1 = await Image.compress(uri, {
|
|
149
146
|
compressionMethod: 'manual',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Alert","FileSystem","ImagePicker","PermissionStatus","showToast","Logger","LOG_TYPE","getBaseETResponse","getEventCodeByET","EntityCode","ExecutionTaskID","BaseError","BaseErrorCodes","DispatchSdkCache","insertDocumentInDB","launchCamera","Image","Storage","deleteImage","imageData","images","deleteAsync","path","filtered","filter","ele","img","id","toString","toLowerCase","console","log","getMaxImagesCount","props","captureCountLimit","getImagesFileName","Date","now","getCompressionRatio","uri","maxSize","fileInfo","getInfoAsync","size","Math","min","exists","fileSize","error","getInstance","logEvent","message","SDK_ERROR","checkCameraPermissionUtil","response","getCameraPermissionsAsync","granted","resp","requestCameraPermissionsAsync","status","GRANTED","captureImage","imageWidth","imageHeight","alert","cameraResult","options","selectionLimit","mediaType","includeBase64","didCancel","errorCode","errorMessage","assets","compressionRatio","setItem","String","resizedImage1","compress","compressionMethod","quality","includes","resizedImageResult","width","height","base64","then","SDK_DEBUG","catch","exception","getCaptureOutput","imageDataList","captureProps","_captureProps$applica","length","IMAGE_CAPTURE","applicableReasons","failure","mergedObjectiveId","_captureProps$applica2","success","captures","getImagesData","imagesDataList","output","folderName","getKeyFromCache","KEYS","FMS_FOLDER","data","insertID","title","dateTime","lat","lng","accuracy","push","url","timestamp","file","folder","name","SQLiteDBIssue"],"sources":["CaptureUtils.ts"],"sourcesContent":["import type {\n CapturedImage,\n CaptureInput,\n CaptureOutput,\n ImageData,\n} from './CaptureSchema';\nimport { Alert, Platform } from 'react-native';\nimport * as FileSystem from 'expo-file-system';\nimport * as ImagePicker from 'expo-image-picker';\nimport { PermissionStatus } from 'expo-image-picker';\nimport { showToast } from '../../widgets/Toaster';\nimport Logger, { LOG_TYPE } from '../../../utils/Logger';\nimport { getBaseETResponse } from '../../../utils/ExecTaskUtils';\nimport { getEventCodeByET } from '../../../manager/dispatchCodes/EventCodeContainer';\nimport {\n EntityCode,\n ExecutionTaskID,\n} from '../../../models/execTasks/ETConfig';\nimport { BaseError } from '../../../errors/BaseError';\nimport BaseErrorCodes from '../../../errors/ErrorCodes';\nimport DispatchSdkCache from '../../../manager/sdk/DispatchSdkCache';\nimport { insertDocumentInDB } from '../../../utils/SyncManagerUtils';\nimport {CameraOptions, launchCamera} from 'react-native-image-picker';\nimport { Image } from 'react-native-compressor';\nimport Storage from '../../../utils/storage';\n\nexport async function deleteImage(imageData: { path: string; id: { toString: () => string; }; }, images: any[]) {\n await FileSystem.deleteAsync(imageData.path);\n let filtered = images.filter(ele=>ele).filter(img => img.id.toString().toLowerCase() !== imageData.id.toString().toLowerCase()\n );\n console.log(\"filtered\",filtered);\n return filtered;\n}\n\nexport function getMaxImagesCount(props: CaptureInput) {\n if (props && props.captureCountLimit) return props.captureCountLimit;\n else return 1;\n}\n\nexport function getImagesFileName() {\n return `IMG_${Date.now().toString()}.jpg`;\n}\n\nexport async function getCompressionRatio(\n uri: string,\n maxSize: number\n): Promise<number> {\n try {\n let fileInfo = await FileSystem.getInfoAsync(uri, {\n size: true,\n });\n maxSize = Math.min(maxSize, 1024);\n if (fileInfo.exists) {\n let fileSize = fileInfo.size / 1024;\n if (fileSize > maxSize) {\n return maxSize / fileSize;\n } else return 1;\n }\n return 1;\n } catch (error: any) {\n Logger.getInstance().logEvent(\n 'getCompressionRatio',\n error.message,\n LOG_TYPE.SDK_ERROR\n );\n return 1;\n }\n}\n\nexport async function checkCameraPermissionUtil(): Promise<boolean> {\n let response = await ImagePicker.getCameraPermissionsAsync();\n if (response.granted) return true;\n else {\n let resp = await ImagePicker.requestCameraPermissionsAsync();\n return resp.status === PermissionStatus.GRANTED;\n }\n}\n\ninterface responseType {\n cancelled?: boolean;\n uri?: string;\n assets?: any[];\n}\n\ndeclare type ImageResult = {\n uri: string;\n width: number;\n height: number;\n base64?: string;\n};\n\nexport async function captureImage(\n imageWidth: number,\n imageHeight: number,\n fileSize: number\n): Promise<ImageResult | null> {\n try {\n if (!(await checkCameraPermissionUtil())) {\n Alert.alert('Permissions Error', 'Camera permissions not provided!');\n return null;\n }\n\n\n //let response : responseType;\n let uri : string = ''\n let cameraResult = null;\n\n const options = {\n selectionLimit: 1,\n mediaType: 'photo',\n includeBase64: false,\n };\n\n \n\n // You can also use as a promise without 'callback':\n // await launchCamera(options as CameraOptions , response => { \n // if (response?.didCancel){\n // console.log(\"aks:didCancel=\")\n // showToast('User cancelled the action'); \n // console.log('User cancelled the action');\n // } else if (response.errorCode == ('camera_unavailable' || 'permission' || 'others')) {\n // console.log(\"aks:errorCode=\")\n // showToast(response.errorMessage? response.errorMessage : ''); \n // console.log('ImagePicker Error: ', response.errorMessage);\n // } else {\n // console.log(\"aks:errorCode=before\")\n // async()=>{\n // console.log(\"aks:else=after\")\n // let assets = response.assets? response.assets : null; \n // console.log(\"aks:assets=\", assets)\n // // \n // if(assets != null){\n // uri = assets[0].uri as string;\n // //\n // let compressionRatio = await getCompressionRatio(uri, fileSize);\n // console.log(\"aks:compressionRatio=\", compressionRatio)\n \n // //\n // const saveOptions = {\n // compress: compressionRatio,\n // }\n // //\n // console.log(\"aks:uri=blank\")\n // console.log(\"aks:uri=\", uri)\n // let resizedImage = await ImageManipulator.manipulateAsync(uri, [], saveOptions,);\n // //\n // console.log(\"aks:resizedImage=\", resizedImage)\n // //delete file\n // FileSystem.deleteAsync(uri)\n // .then(() =>\n // Logger.getInstance().logEvent('CAPTURE_ET','File deleted success',LOG_TYPE.SDK_DEBUG)\n // ).catch((error) => {\n // Logger.getInstance().logEvent('CAPTURE_ET',error.message,LOG_TYPE.SDK_ERROR);\n // });\n // //\n // return resizedImage;\n // } \n // return null; \n // }\n // } \n // });\n\n await launchCamera(options as CameraOptions , response => { \n if (response?.didCancel){\n console.log(\"aks:didCancel=\")\n showToast('User cancelled the action'); \n console.log('User cancelled the action');\n } else if (response.errorCode == ('camera_unavailable' || 'permission' || 'others')) {\n console.log(\"aks:errorCode=\")\n showToast(response.errorMessage? response.errorMessage : ''); \n console.log('ImagePicker Error: ', response.errorMessage);\n } else {\n console.log(\"aks:response=else-start\")\n // \n let assets = response.assets? response.assets : null; \n console.log(\"aks:assets=\", assets)\n \n //\n if(assets != null){\n uri = assets[0].uri as string;\n }\n\n console.log(\"aks:uri=before\", uri)\n } \n });\n\n console.log(\"aks:uri-after=\", uri)\n // \n if (uri != null) {\n \n let compressionRatio = await getCompressionRatio(uri, fileSize);\n console.log('aks:compressionRatio=', compressionRatio);\n Storage.getInstance().setItem('maxSize', String(fileSize));\n Storage.getInstance().setItem('cRatio', String(compressionRatio));\n\n console.log('aks:uri=', uri);\n\n let resizedImage1 = await Image.compress(uri, {\n compressionMethod: 'manual',\n quality: compressionRatio,\n });\n //\n console.log('aks:resizedImage1=', resizedImage1);\n // If captured image file path does not have prefix file:// then we are addding manually\n if (!resizedImage1.includes('file')) {\n resizedImage1 = 'file://' + resizedImage1; \n }\n\n console.log('aks:resizedImage2=', resizedImage1);\n\n let resizedImageResult: ImageResult = {\n uri: resizedImage1,\n width: imageWidth,\n height: imageHeight,\n base64: '',\n };\n console.log('aks:resizedImageResult=', resizedImageResult);\n\n //delete file\n FileSystem.deleteAsync(uri)\n .then(() =>\n Logger.getInstance().logEvent('CAPTURE_ET','File deleted success',LOG_TYPE.SDK_DEBUG)\n ).catch((error) => {\n Logger.getInstance().logEvent('CAPTURE_ET',error.message,LOG_TYPE.SDK_ERROR);\n });\n //\n\n // console.log(\"resizedImage=before\")\n // console.log(\"resizedImage=\", resizedImage)\n\n return resizedImageResult;\n }\n\n // if(Platform.OS = 'android'){\n // response = {'uri': 'hello'}\n // uri = 'hello';\n // } else {\n // response = await ImagePicker.launchCameraAsync({\n // quality: 1,\n // });\n // let assets = response.assets;\n // if(assets){\n // uri = assets[0].uri\n // } \n // }\n\n // if (response?.cancelled){\n // showToast('User cancelled the action');\n // return null;\n // } \n\n \n // let actionResize: ActionResize = {\n // resize: {\n // width: imageWidth,\n // height: imageHeight,\n // },\n // };\n\n return null\n \n } catch (exception: any) {\n //showToast(`Error ${exception.message}`);\n //console.error('capture image error: ', exception);\n return null;\n }\n}\n\n\nexport async function getCaptureOutput(\n imageDataList: ImageData[],\n captureProps: CaptureInput\n): Promise<CaptureOutput> {\n if (!imageDataList || imageDataList.length === 0)\n return {\n ...(await getBaseETResponse(\n EntityCode.IMAGE_CAPTURE,\n false,\n getEventCodeByET(\n ExecutionTaskID.IMAGE_CAPTURE,\n false,\n captureProps.applicableReasons?.failure\n ),\n '',\n captureProps.mergedObjectiveId,\n ExecutionTaskID.IMAGE_CAPTURE\n )),\n };\n else {\n return {\n ...(await getBaseETResponse(\n EntityCode.IMAGE_CAPTURE,\n true,\n getEventCodeByET(\n ExecutionTaskID.IMAGE_CAPTURE,\n true,\n captureProps.applicableReasons?.success\n ),\n '',\n captureProps.mergedObjectiveId,\n ExecutionTaskID.IMAGE_CAPTURE\n )),\n captures: await getImagesData(imageDataList, captureProps),\n };\n }\n}\n\nasync function getImagesData(\n imagesDataList: ImageData[],\n captureProps: CaptureInput\n): Promise<CapturedImage[]> {\n if (imagesDataList && imagesDataList.length > 0) {\n let output: CapturedImage[] = [];\n const folderName =\n (await DispatchSdkCache.getInstance().getKeyFromCache(\n DispatchSdkCache.KEYS.FMS_FOLDER\n )) ?? 'NULL';\n console.log('getImagesData:',folderName);\n for (const data of imagesDataList) {\n let insertID = await insertDocumentInDB(\n data.id,\n folderName,\n // JSON.stringify(captureProps.jobIds),\n // JSON.stringify(captureProps.objRefs),\n null,\n captureProps.title,\n data.path,\n data.dateTime,\n data.lat,\n data.lng,\n data.accuracy\n );\n if (insertID)\n output.push({\n url: '',\n timestamp: data.timestamp,\n file: { folder: folderName, name: data.id },\n });\n else\n throw new BaseError(\n BaseErrorCodes.SQLiteDBIssue,\n 'Unable to save Image'\n );\n }\n return output;\n } else return [];\n}"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Alert","FileSystem","ImagePicker","PermissionStatus","showToast","Logger","LOG_TYPE","getBaseETResponse","getEventCodeByET","EntityCode","ExecutionTaskID","BaseError","BaseErrorCodes","DispatchSdkCache","insertDocumentInDB","launchCamera","Image","deleteImage","imageData","images","deleteAsync","path","filtered","filter","ele","img","id","toString","toLowerCase","console","log","getMaxImagesCount","props","captureCountLimit","getImagesFileName","Date","now","getCompressionRatio","uri","maxSize","fileInfo","getInfoAsync","size","Math","min","exists","fileSize","error","getInstance","logEvent","message","SDK_ERROR","checkCameraPermissionUtil","response","getCameraPermissionsAsync","granted","resp","requestCameraPermissionsAsync","status","GRANTED","captureImage","imageWidth","imageHeight","alert","cameraResult","options","selectionLimit","mediaType","includeBase64","didCancel","errorCode","errorMessage","assets","compressionRatio","resizedImage1","compress","compressionMethod","quality","includes","resizedImageResult","width","height","base64","then","SDK_DEBUG","catch","exception","getCaptureOutput","imageDataList","captureProps","_captureProps$applica","length","IMAGE_CAPTURE","applicableReasons","failure","mergedObjectiveId","_captureProps$applica2","success","captures","getImagesData","imagesDataList","output","folderName","getKeyFromCache","KEYS","FMS_FOLDER","data","insertID","title","dateTime","lat","lng","accuracy","push","url","timestamp","file","folder","name","SQLiteDBIssue"],"sources":["CaptureUtils.ts"],"sourcesContent":["import type {\n CapturedImage,\n CaptureInput,\n CaptureOutput,\n ImageData,\n} from './CaptureSchema';\nimport { Alert, Platform } from 'react-native';\nimport * as FileSystem from 'expo-file-system';\nimport * as ImagePicker from 'expo-image-picker';\nimport { PermissionStatus } from 'expo-image-picker';\nimport { showToast } from '../../widgets/Toaster';\nimport Logger, { LOG_TYPE } from '../../../utils/Logger';\nimport { getBaseETResponse } from '../../../utils/ExecTaskUtils';\nimport { getEventCodeByET } from '../../../manager/dispatchCodes/EventCodeContainer';\nimport {\n EntityCode,\n ExecutionTaskID,\n} from '../../../models/execTasks/ETConfig';\nimport { BaseError } from '../../../errors/BaseError';\nimport BaseErrorCodes from '../../../errors/ErrorCodes';\nimport DispatchSdkCache from '../../../manager/sdk/DispatchSdkCache';\nimport { insertDocumentInDB } from '../../../utils/SyncManagerUtils';\nimport {CameraOptions, launchCamera} from 'react-native-image-picker';\nimport { Image } from 'react-native-compressor';\nimport Storage from '../../../utils/storage';\n\nexport async function deleteImage(imageData: { path: string; id: { toString: () => string; }; }, images: any[]) {\n await FileSystem.deleteAsync(imageData.path);\n let filtered = images.filter(ele=>ele).filter(img => img.id.toString().toLowerCase() !== imageData.id.toString().toLowerCase()\n );\n console.log(\"filtered\",filtered);\n return filtered;\n}\n\nexport function getMaxImagesCount(props: CaptureInput) {\n if (props && props.captureCountLimit) return props.captureCountLimit;\n else return 1;\n}\n\nexport function getImagesFileName() {\n return `IMG_${Date.now().toString()}.jpg`;\n}\n\nexport async function getCompressionRatio(\n uri: string,\n maxSize: number\n): Promise<number> {\n try {\n let fileInfo = await FileSystem.getInfoAsync(uri, {\n size: true,\n });\n maxSize = Math.min(maxSize, 1024);\n if (fileInfo.exists) {\n let fileSize = fileInfo.size / 1024;\n if (fileSize > maxSize) {\n return maxSize / fileSize;\n } else return 1;\n }\n return 1;\n } catch (error: any) {\n Logger.getInstance().logEvent(\n 'getCompressionRatio',\n error.message,\n LOG_TYPE.SDK_ERROR\n );\n return 1;\n }\n}\n\nexport async function checkCameraPermissionUtil(): Promise<boolean> {\n let response = await ImagePicker.getCameraPermissionsAsync();\n if (response.granted) return true;\n else {\n let resp = await ImagePicker.requestCameraPermissionsAsync();\n return resp.status === PermissionStatus.GRANTED;\n }\n}\n\ninterface responseType {\n cancelled?: boolean;\n uri?: string;\n assets?: any[];\n}\n\ndeclare type ImageResult = {\n uri: string;\n width: number;\n height: number;\n base64?: string;\n};\n\nexport async function captureImage(\n imageWidth: number,\n imageHeight: number,\n fileSize: number\n): Promise<ImageResult | null> {\n try {\n if (!(await checkCameraPermissionUtil())) {\n Alert.alert('Permissions Error', 'Camera permissions not provided!');\n return null;\n }\n\n\n //let response : responseType;\n let uri : string = ''\n let cameraResult = null;\n\n const options = {\n selectionLimit: 1,\n mediaType: 'photo',\n includeBase64: false,\n };\n\n \n\n // You can also use as a promise without 'callback':\n // await launchCamera(options as CameraOptions , response => { \n // if (response?.didCancel){\n // console.log(\"aks:didCancel=\")\n // showToast('User cancelled the action'); \n // console.log('User cancelled the action');\n // } else if (response.errorCode == ('camera_unavailable' || 'permission' || 'others')) {\n // console.log(\"aks:errorCode=\")\n // showToast(response.errorMessage? response.errorMessage : ''); \n // console.log('ImagePicker Error: ', response.errorMessage);\n // } else {\n // console.log(\"aks:errorCode=before\")\n // async()=>{\n // console.log(\"aks:else=after\")\n // let assets = response.assets? response.assets : null; \n // console.log(\"aks:assets=\", assets)\n // // \n // if(assets != null){\n // uri = assets[0].uri as string;\n // //\n // let compressionRatio = await getCompressionRatio(uri, fileSize);\n // console.log(\"aks:compressionRatio=\", compressionRatio)\n \n // //\n // const saveOptions = {\n // compress: compressionRatio,\n // }\n // //\n // console.log(\"aks:uri=blank\")\n // console.log(\"aks:uri=\", uri)\n // let resizedImage = await ImageManipulator.manipulateAsync(uri, [], saveOptions,);\n // //\n // console.log(\"aks:resizedImage=\", resizedImage)\n // //delete file\n // FileSystem.deleteAsync(uri)\n // .then(() =>\n // Logger.getInstance().logEvent('CAPTURE_ET','File deleted success',LOG_TYPE.SDK_DEBUG)\n // ).catch((error) => {\n // Logger.getInstance().logEvent('CAPTURE_ET',error.message,LOG_TYPE.SDK_ERROR);\n // });\n // //\n // return resizedImage;\n // } \n // return null; \n // }\n // } \n // });\n\n await launchCamera(options as CameraOptions , response => { \n if (response?.didCancel){\n console.log(\"aks:didCancel=\")\n showToast('User cancelled the action'); \n console.log('User cancelled the action');\n } else if (response.errorCode == ('camera_unavailable' || 'permission' || 'others')) {\n console.log(\"aks:errorCode=\")\n showToast(response.errorMessage? response.errorMessage : ''); \n console.log('ImagePicker Error: ', response.errorMessage);\n } else {\n console.log(\"aks:response=else-start\")\n // \n let assets = response.assets? response.assets : null; \n console.log(\"aks:assets=\", assets)\n \n //\n if(assets != null){\n uri = assets[0].uri as string;\n }\n\n console.log(\"aks:uri=before\", uri)\n } \n });\n\n console.log(\"aks:uri-after=\", uri)\n // \n if (uri != null) {\n \n let compressionRatio = 0.80 //await getCompressionRatio(uri, fileSize);\n console.log('aks:compressionRatio=', compressionRatio);\n \n\n console.log('aks:uri=', uri);\n\n let resizedImage1 = await Image.compress(uri, {\n compressionMethod: 'manual',\n quality: compressionRatio,\n });\n //\n console.log('aks:resizedImage1=', resizedImage1);\n // If captured image file path does not have prefix file:// then we are addding manually\n if (!resizedImage1.includes('file')) {\n resizedImage1 = 'file://' + resizedImage1; \n }\n\n console.log('aks:resizedImage2=', resizedImage1);\n\n let resizedImageResult: ImageResult = {\n uri: resizedImage1,\n width: imageWidth,\n height: imageHeight,\n base64: '',\n };\n console.log('aks:resizedImageResult=', resizedImageResult);\n\n //delete file\n FileSystem.deleteAsync(uri)\n .then(() =>\n Logger.getInstance().logEvent('CAPTURE_ET','File deleted success',LOG_TYPE.SDK_DEBUG)\n ).catch((error) => {\n Logger.getInstance().logEvent('CAPTURE_ET',error.message,LOG_TYPE.SDK_ERROR);\n });\n //\n\n // console.log(\"resizedImage=before\")\n // console.log(\"resizedImage=\", resizedImage)\n\n return resizedImageResult;\n }\n\n // if(Platform.OS = 'android'){\n // response = {'uri': 'hello'}\n // uri = 'hello';\n // } else {\n // response = await ImagePicker.launchCameraAsync({\n // quality: 1,\n // });\n // let assets = response.assets;\n // if(assets){\n // uri = assets[0].uri\n // } \n // }\n\n // if (response?.cancelled){\n // showToast('User cancelled the action');\n // return null;\n // } \n\n \n // let actionResize: ActionResize = {\n // resize: {\n // width: imageWidth,\n // height: imageHeight,\n // },\n // };\n\n return null\n \n } catch (exception: any) {\n //showToast(`Error ${exception.message}`);\n //console.error('capture image error: ', exception);\n return null;\n }\n}\n\n\nexport async function getCaptureOutput(\n imageDataList: ImageData[],\n captureProps: CaptureInput\n): Promise<CaptureOutput> {\n if (!imageDataList || imageDataList.length === 0)\n return {\n ...(await getBaseETResponse(\n EntityCode.IMAGE_CAPTURE,\n false,\n getEventCodeByET(\n ExecutionTaskID.IMAGE_CAPTURE,\n false,\n captureProps.applicableReasons?.failure\n ),\n '',\n captureProps.mergedObjectiveId,\n ExecutionTaskID.IMAGE_CAPTURE\n )),\n };\n else {\n return {\n ...(await getBaseETResponse(\n EntityCode.IMAGE_CAPTURE,\n true,\n getEventCodeByET(\n ExecutionTaskID.IMAGE_CAPTURE,\n true,\n captureProps.applicableReasons?.success\n ),\n '',\n captureProps.mergedObjectiveId,\n ExecutionTaskID.IMAGE_CAPTURE\n )),\n captures: await getImagesData(imageDataList, captureProps),\n };\n }\n}\n\nasync function getImagesData(\n imagesDataList: ImageData[],\n captureProps: CaptureInput\n): Promise<CapturedImage[]> {\n if (imagesDataList && imagesDataList.length > 0) {\n let output: CapturedImage[] = [];\n const folderName =\n (await DispatchSdkCache.getInstance().getKeyFromCache(\n DispatchSdkCache.KEYS.FMS_FOLDER\n )) ?? 'NULL';\n console.log('getImagesData:',folderName);\n for (const data of imagesDataList) {\n let insertID = await insertDocumentInDB(\n data.id,\n folderName,\n // JSON.stringify(captureProps.jobIds),\n // JSON.stringify(captureProps.objRefs),\n null,\n captureProps.title,\n data.path,\n data.dateTime,\n data.lat,\n data.lng,\n data.accuracy\n );\n if (insertID)\n output.push({\n url: '',\n timestamp: data.timestamp,\n file: { folder: folderName, name: data.id },\n });\n else\n throw new BaseError(\n BaseErrorCodes.SQLiteDBIssue,\n 'Unable to save Image'\n );\n }\n return output;\n } else return [];\n}"],"mappings":"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"}
|
|
@@ -11,7 +11,6 @@ import Logger, { LOG_TYPE } from '../../../utils/Logger';
|
|
|
11
11
|
import NetworkUtil from '../../../utils/NetworkUtil';
|
|
12
12
|
import Marker, { Position, TextBackgroundType, ImageFormat } from 'react-native-image-marker';
|
|
13
13
|
import RNFS from 'react-native-fs';
|
|
14
|
-
import Storage from '../../../utils/storage';
|
|
15
14
|
import { Platform } from 'react-native';
|
|
16
15
|
import { SentryEventNameSdkConstants, SeverityLevelValue } from '../../../analytics/sentry/SentrySdkConstants';
|
|
17
16
|
import { fireEventWithScreenName } from '../../../analytics/sentry/SentryAnalyticsUtils';
|
|
@@ -152,17 +151,9 @@ export default class DocumentSyncManager {
|
|
|
152
151
|
}
|
|
153
152
|
|
|
154
153
|
let fontSize = 14;
|
|
155
|
-
let fileSize = await Storage.getInstance().getItem('maxSize'); // File max size
|
|
156
|
-
let cRatio = await Storage.getInstance().getItem('cRatio'); // File compression ratio
|
|
157
|
-
let nFileSize = Number(fileSize);
|
|
158
|
-
let ncRatio = Number(cRatio);
|
|
159
|
-
let wholeRatio = Math.round(ncRatio * 100); // Compression ratio to be made
|
|
160
154
|
if (Platform.OS !== 'android') {
|
|
161
155
|
fontSize = 28;
|
|
162
156
|
}
|
|
163
|
-
if (wholeRatio >= 75) {
|
|
164
|
-
wholeRatio = 25;
|
|
165
|
-
}
|
|
166
157
|
const options = {
|
|
167
158
|
backgroundImage: {
|
|
168
159
|
// Image for overlay
|
|
@@ -188,11 +179,8 @@ export default class DocumentSyncManager {
|
|
|
188
179
|
}
|
|
189
180
|
}
|
|
190
181
|
}],
|
|
191
|
-
scale:
|
|
192
|
-
quality: 100
|
|
193
|
-
// Compressio ratio in which file will generate
|
|
194
|
-
maxSize: nFileSize,
|
|
195
|
-
// Max file size in which file will generate
|
|
182
|
+
scale: 0,
|
|
183
|
+
quality: 100,
|
|
196
184
|
filename: pFilePath,
|
|
197
185
|
saveFormat: ImageFormat.jpg // Saving in jpeg format
|
|
198
186
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DocumentManager","DocumentHttpClient","isEmptyOrBlank","flattenObject","BaseError","BaseErrorCodes","InvalidArgumentsError","InvalidBaseURL","SyncManagerNotInitialized","Logger","LOG_TYPE","NetworkUtil","Marker","Position","TextBackgroundType","ImageFormat","RNFS","Storage","Platform","SentryEventNameSdkConstants","SeverityLevelValue","fireEventWithScreenName","latlngToDms","require","DocumentSyncManager","retries","_retries","value","constructor","_defineProperty","init","baseURL","retryCount","maxRetryCount","documentHttpClient","getInstance","instance","startDocumentSync","inProgress","hasNetwork","isAvailableAsync","checkForInitialization","docManager","documentRows","getUnsyncedDocument","length","uploadDocToServer","logEvent","SDK_INFO","error","isSyncPending","leftDocuments","getAllUnsyncedDocs","insertDocument","fmsFolderID","data","base64","desc","dspID","filePath","fileType","fileName","geoTimeStamp","processedFilePath","priority","arguments","undefined","InvalidArgumentError","_this$docManager","console","log","insertResponse","forceDocumentSync","updateDocument","documentRow","fmsID","markDocumentSynced","id","err","message","SDK_WARNING","updateDocumentProcessedPath","origialFilePath","processedPath","updateProcesedFilePath","updateDocError","uploadError","updateDocSyncError","processImageData","processed_file_path","pFilePath","file_name","strGeoStamp","geo_timestamp","objGeoStamp","JSON","parse","dateTime","lat","lng","accuracy","strDMS","strDMSWithAccuracy","fontSize","fileSize","getItem","cRatio","nFileSize","Number","ncRatio","wholeRatio","Math","round","OS","options","backgroundImage","src","file_path","scale","watermarkTexts","text","position","topLeft","style","color","fontName","textBackgroundStyle","padding","type","none","quality","maxSize","filename","saveFormat","jpg","markText","completeFilePath","includes","processBase64Data","imagePath","TemporaryDirectoryPath","writeFile","processedBase64","splittedDase64Data","split","processPODData","_this$documentHttpCli","docRow","uploadDocument","extraParameters","folderName","fms_folder_id","SDK_ERROR","_error$response","_error$response2","cta","severityLevel","ERROR","eventName","API_ERROR","screenName","extraParams","stringify","response","status","getAllDocuments","dispatchID","clearSyncedDocs","deleteAllSyncedDocuments","_class"],"sources":["DocumentSyncManager.ts"],"sourcesContent":["import type { DocumentRow } from '../DBConfig';\nimport DocumentManager from './DocumentManager';\nimport DocumentHttpClient from './DocumentHttpClient';\nimport { isEmptyOrBlank, flattenObject } from '../../../utils/utils';\nimport { BaseError } from '../../../errors/BaseError';\nimport BaseErrorCodes, {\n InvalidArgumentsError,\n InvalidBaseURL,\n SyncManagerNotInitialized,\n} from '../../../errors/ErrorCodes';\nimport Logger, { LOG_TYPE } from '../../../utils/Logger';\nimport type { SQLResultSet } from 'expo-sqlite';\nimport NetworkUtil from '../../../utils/NetworkUtil';\nimport Marker, {\n Position,\n TextBackgroundType,\n ImageFormat,\n} from 'react-native-image-marker';\nimport RNFS from 'react-native-fs';\nimport Storage from '../../../utils/storage';\nimport { Platform } from 'react-native';\nimport { ScreenNameSdkConstants, SentryEventNameSdkConstants, SeverityLevelValue } from '../../../analytics/sentry/SentrySdkConstants';\nimport { fireEventWithScreenName } from '../../../analytics/sentry/SentryAnalyticsUtils';\nconst latlngToDms = require('latlng-to-dms');\n\n\nexport default class DocumentSyncManager {\n private documentHttpClient: DocumentHttpClient | undefined;\n private inProgress: boolean = false;\n private static instance: DocumentSyncManager;\n private docManager: DocumentManager | undefined;\n private maxRetryCount: number = 3;\n private _retries = 0;\n\n get retries(): number {\n return this._retries;\n }\n\n set retries(value: number) {\n this._retries = value;\n }\n\n private constructor() {}\n\n public init(baseURL: string, retryCount: number) {\n if (isEmptyOrBlank(baseURL))\n throw new BaseError(BaseErrorCodes.InvalidBaseURL, InvalidBaseURL);\n this.maxRetryCount = retryCount;\n this.documentHttpClient = new DocumentHttpClient(baseURL);\n }\n\n public static getInstance(): DocumentSyncManager {\n if (!DocumentSyncManager.instance) {\n DocumentSyncManager.instance = new DocumentSyncManager();\n }\n return DocumentSyncManager.instance;\n }\n\n public async startDocumentSync(): Promise<void> {\n if (!this.inProgress && this._retries < this.maxRetryCount) {\n this.inProgress = true;\n const hasNetwork = await NetworkUtil.isAvailableAsync();\n try {\n this.checkForInitialization();\n if (!this.docManager) {\n this.docManager = await DocumentManager.getInstance();\n }\n if (hasNetwork) {\n let documentRows: DocumentRow[] =\n await this.docManager.getUnsyncedDocument();\n if (documentRows?.length > 0) {\n await this.uploadDocToServer(documentRows[0]);\n } else {\n Logger.getInstance().logEvent(\n 'startDocumentSync',\n 'No data to sync',\n LOG_TYPE.SDK_INFO\n );\n }\n } else {\n Logger.getInstance().logEvent(\n 'startDocumentSync',\n 'No Network',\n LOG_TYPE.SDK_INFO\n );\n }\n } catch (error: any) {\n } finally {\n this.inProgress = false;\n if ((await this.isSyncPending()) && hasNetwork) {\n await this.startDocumentSync();\n }\n }\n } else {\n Logger.getInstance().logEvent(\n 'startDocumentSync',\n 'sync already in progress ',\n LOG_TYPE.SDK_INFO\n );\n }\n }\n\n public async isSyncPending(): Promise<boolean> {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n let leftDocuments = await this.docManager.getAllUnsyncedDocs();\n return leftDocuments?.length > 0 && this._retries < this.maxRetryCount;\n }\n\n public async insertDocument(\n fmsFolderID: string | null,\n data: string | null,\n base64: boolean,\n desc: string,\n dspID: string,\n // jobID: string,\n // objRef: string,\n filePath: string | null,\n fileType: string,\n fileName: string,\n geoTimeStamp: string,\n processedFilePath: string,\n priority: number = 1\n ): Promise<SQLResultSet> {\n if (\n isEmptyOrBlank(desc) ||\n isEmptyOrBlank(dspID) ||\n // isEmptyOrBlank(jobID) ||\n // isEmptyOrBlank(objRef) ||\n isEmptyOrBlank(fileType) ||\n isEmptyOrBlank(fileName) ||\n (base64 && isEmptyOrBlank(data)) ||\n (!base64 && isEmptyOrBlank(filePath))\n )\n throw new BaseError(\n BaseErrorCodes.InvalidArgumentError,\n InvalidArgumentsError\n );\n else {\n if (!this.docManager) {\n Logger.getInstance().logEvent(\n 'insertDocument',\n 'INIT DOC SYNC AGAIN',\n LOG_TYPE.SDK_INFO\n );\n this.docManager = await DocumentManager.getInstance();\n }\n console.log('insertDocument1:',fmsFolderID);\n let insertResponse = await this.docManager?.insertDocument(\n fmsFolderID,\n desc,\n dspID,\n // jobID,\n // objRef,\n base64,\n fileName,\n fileType,\n data,\n filePath,\n geoTimeStamp,\n processedFilePath,\n priority\n );\n return insertResponse;\n }\n }\n\n public async forceDocumentSync() {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n this._retries = 0;\n await this.startDocumentSync();\n }\n\n private async updateDocument(documentRow: DocumentRow, fmsID: string) {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n try {\n await this.docManager.markDocumentSynced(documentRow.id, fmsID);\n } catch (err: any) {\n Logger.getInstance().logEvent(\n 'updateDocument',\n err.message,\n LOG_TYPE.SDK_WARNING\n );\n }\n }\n\n // This function is updating processed_file_path column for the base64 overlayed data and overlayed image file for POD. Also if it is base 64 then it is also storing temprary file path in file_path as original bae64 image.\n private async updateDocumentProcessedPath(\n documentRow: DocumentRow,\n origialFilePath: String,\n processedPath: String\n ) {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n try {\n await this.docManager.updateProcesedFilePath(\n documentRow.id,\n origialFilePath,\n processedPath\n );\n } catch (err: any) {\n Logger.getInstance().logEvent(\n 'updateDocument',\n err.message,\n LOG_TYPE.SDK_WARNING\n );\n }\n }\n\n private async updateDocError(documentRow: DocumentRow, uploadError: string) {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n try {\n await this.docManager.updateDocSyncError(documentRow.id, uploadError);\n } catch (err: any) {\n Logger.getInstance().logEvent(\n 'updateDocError',\n err.message,\n LOG_TYPE.SDK_WARNING\n );\n }\n }\n private checkForInitialization() {\n if (!this.documentHttpClient) {\n throw new BaseError(\n BaseErrorCodes.SyncManagerNotInitialized,\n SyncManagerNotInitialized\n );\n }\n }\n\n // This function will generate overlay image and update documents table for processed_file_path columns with overlayed image path.\n private async processImageData(documentRow: DocumentRow) {\n // If processed_file_path of overlayed image already existing then do not generate it again.\n if (\n documentRow.processed_file_path === null ||\n documentRow.processed_file_path === ''\n ) {\n let pFilePath = 'processed_' + documentRow.file_name; // File name for processed file.\n let strGeoStamp = documentRow.geo_timestamp; // Saved geostamp string\n let objGeoStamp = JSON.parse(strGeoStamp); // Conversion to geostamp object\n let dateTime = objGeoStamp.dateTime; // Date time stamp in UTC format\n let lat = objGeoStamp.lat; // Latitide\n let lng = objGeoStamp.lng; // Longitude\n let accuracy = objGeoStamp.accuracy; // Location accuracy\n let strDMS = latlngToDms(`${lat}, ${lng}`); // Location in degree format\n let strDMSWithAccuracy = strDMS; \n if (accuracy !== '') {\n strDMSWithAccuracy = strDMS + ' (Accuracy: ' + accuracy + 'm)'; // Appedning accuracy in location \n }\n let fontSize = 14;\n \n let fileSize = await Storage.getInstance().getItem('maxSize'); // File max size\n let cRatio = await Storage.getInstance().getItem('cRatio'); // File compression ratio\n let nFileSize = Number(fileSize);\n let ncRatio = Number(cRatio);\n let wholeRatio = Math.round(ncRatio * 100); // Compression ratio to be made\n if (Platform.OS !== 'android') {\n fontSize = 28;\n }\n if(wholeRatio >= 75){\n wholeRatio = 25;\n }\n const options = {\n backgroundImage: { // Image for overlay\n src: documentRow.file_path,\n scale: 1,\n },\n watermarkTexts: [ \n {\n text: `${dateTime}\\n${strDMSWithAccuracy}`, //Overlay text\n position: {\n position: Position.topLeft, // Overlay text position\n },\n style: { // Style for overlay\n color: '#ffffff',\n fontSize: fontSize,\n fontName: 'Arial',\n textBackgroundStyle: {\n padding: '1% 1%',\n type: TextBackgroundType.none,\n color: '#444444CC',\n },\n },\n },\n ],\n scale: 1,\n quality: 100 - wholeRatio, // Compressio ratio in which file will generate\n maxSize: nFileSize, // Max file size in which file will generate\n filename: pFilePath,\n saveFormat: ImageFormat.jpg, // Saving in jpeg format\n };\n let processedFilePath = await Marker.markText(options); // Generating overlay image\n if (processedFilePath !== null && processedFilePath !== '') {\n let completeFilePath = processedFilePath;\n // If processd image file path does not have prefix file:// then we are addding manually\n if (!processedFilePath.includes('file')) {\n completeFilePath = 'file://' + processedFilePath;\n }\n // Updating document document table with overlayed image path\n this.updateDocumentProcessedPath(\n documentRow,\n documentRow.file_path, //original file path catprued from camera\n completeFilePath // completeFilePath is the path with file:// of processed file \n );\n documentRow.processed_file_path = completeFilePath; \n }\n }\n return documentRow;\n }\n\n // This function will generate overlay base64 data and update documents table for processed_file_path columns with overlayed base64 data.\n private async processBase64Data(documentRow: DocumentRow) {\n // If base64 overlayed data already existing then do not generate it again.\n if (\n documentRow.processed_file_path === null ||\n documentRow.processed_file_path === ''\n ) {\n let filePath = '';\n // If templrary base 64 file already exist then do not create again\n if (documentRow.file_path === null || documentRow.file_path === '') {\n const imagePath = `${RNFS.TemporaryDirectoryPath}/${documentRow.file_name}`;\n await RNFS.writeFile(imagePath, documentRow.data, 'base64'); // Write file to temprary location\n filePath = imagePath;\n // If file generated frommbase64 data does not have file:// then we are adding manually.\n if (!imagePath.includes('file')) {\n filePath = `file://${imagePath}`;\n }\n documentRow.file_path = filePath;\n } else {\n filePath = documentRow.file_path;\n }\n let pFilePath = 'processed_' + documentRow.file_name; // File name for processed file.\n let strGeoStamp = documentRow.geo_timestamp; // Saved geostamp string\n let objGeoStamp = JSON.parse(strGeoStamp); // Conversion to geostamp object\n let dateTime = objGeoStamp.dateTime; // Date time stamp in UTC format\n let lat = objGeoStamp.lat; // Latitide\n let lng = objGeoStamp.lng; // Longitude\n let accuracy = objGeoStamp.accuracy; // Location accuracy\n let strDMS = latlngToDms(`${lat}, ${lng}`); // Location in degree format\n let strDMSWithAccuracy = strDMS; \n if (accuracy !== '') {\n strDMSWithAccuracy = strDMS + ' (Accuracy: ' + accuracy + 'm)'; // Appedning accuracy in location \n }\n const options = {\n backgroundImage: {\n src: filePath, // Image for overlay\n scale: 1,\n },\n watermarkTexts: [\n {\n text: `${dateTime}\\n${strDMSWithAccuracy}`, // Ooverlay text\n position: {\n position: Position.topLeft, // Overlay text position\n },\n style: { // Style for overlay\n color: '#ffffff',\n fontSize: 14,\n fontName: 'Arial',\n textBackgroundStyle: {\n padding: '1% 1%',\n type: TextBackgroundType.none,\n color: '#444444CC',\n },\n },\n },\n ],\n scale: 1,\n quality: 100,\n filename: pFilePath,\n saveFormat: ImageFormat.base64, // Saving in base6 format\n };\n let processedBase64 = await Marker.markText(options); // Generating overlay image\n if (processedBase64 !== null && processedBase64 !== '') {\n // Fetching base64 data from processed data.\n var splittedDase64Data = processedBase64.split(\n 'data:image/png;base64,'\n );\n // Updating document document table with overlayed base64 data\n await this.updateDocumentProcessedPath(\n documentRow,\n filePath,\n splittedDase64Data[1]\n );\n documentRow.processed_file_path = splittedDase64Data[1];\n }\n }\n return documentRow;\n }\n\n // This function will calling respective overlay method for base64 (for signature POD) or image (for image POD).\n private async processPODData(documentRow: DocumentRow) {\n if (documentRow.base64 && documentRow.data != null) {\n return await this.processBase64Data(documentRow);\n } else {\n return await this.processImageData(documentRow);\n }\n }\n\n private async uploadDocToServer(documentRow: DocumentRow) {\n try {\n let docRow = await this.processPODData(documentRow);\n console.log('uploadDocToServer999:', docRow);\n let fmsID = await this.documentHttpClient?.uploadDocument(documentRow);\n\n let extraParameters = {\n fmsID: fmsID ?? '',\n fileName: docRow.file_name,\n folderName: docRow.fms_folder_id\n };\n // TODO: SOLELY DEPENDS ON FMS_ID WHICH IS WRONG => IT SHOULD BE Response.status = 202\n if (fmsID) {\n this._retries = 0;\n await this.updateDocument(docRow, fmsID);\n } else {\n this._retries++;\n Logger.getInstance().logEvent(\n 'uploadDocToServer-empty-fms-id',\n flattenObject(extraParameters),\n LOG_TYPE.SDK_ERROR\n );\n await this.updateDocError(docRow, 'Unexpected Error');\n }\n } catch (error: any) {\n const cta = 'uploadDocToServer-error';\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.ERROR,\n eventName: SentryEventNameSdkConstants.API_ERROR,\n screenName: cta,\n cta: cta,\n extraParams: {\n error: error.message,\n },\n });\n this._retries++;\n Logger.getInstance().logEvent(\n 'uploadDocToServer-sync-error',\n error.message,\n LOG_TYPE.SDK_ERROR\n );\n await this.updateDocError(\n documentRow,\n JSON.stringify({\n message: error.message,\n error: JSON.stringify(error?.response?.data),\n status: error?.response?.status,\n })\n );\n }\n }\n\n public async getAllDocuments(dispatchID?: string): Promise<DocumentRow[]> {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n return this.docManager.getAllDocuments(dispatchID);\n }\n\n public async clearSyncedDocs(dspID: string) {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n if (dspID) await this.docManager.deleteAllSyncedDocuments(dspID);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["DocumentManager","DocumentHttpClient","isEmptyOrBlank","flattenObject","BaseError","BaseErrorCodes","InvalidArgumentsError","InvalidBaseURL","SyncManagerNotInitialized","Logger","LOG_TYPE","NetworkUtil","Marker","Position","TextBackgroundType","ImageFormat","RNFS","Platform","SentryEventNameSdkConstants","SeverityLevelValue","fireEventWithScreenName","latlngToDms","require","DocumentSyncManager","retries","_retries","value","constructor","_defineProperty","init","baseURL","retryCount","maxRetryCount","documentHttpClient","getInstance","instance","startDocumentSync","inProgress","hasNetwork","isAvailableAsync","checkForInitialization","docManager","documentRows","getUnsyncedDocument","length","uploadDocToServer","logEvent","SDK_INFO","error","isSyncPending","leftDocuments","getAllUnsyncedDocs","insertDocument","fmsFolderID","data","base64","desc","dspID","filePath","fileType","fileName","geoTimeStamp","processedFilePath","priority","arguments","undefined","InvalidArgumentError","_this$docManager","console","log","insertResponse","forceDocumentSync","updateDocument","documentRow","fmsID","markDocumentSynced","id","err","message","SDK_WARNING","updateDocumentProcessedPath","origialFilePath","processedPath","updateProcesedFilePath","updateDocError","uploadError","updateDocSyncError","processImageData","processed_file_path","pFilePath","file_name","strGeoStamp","geo_timestamp","objGeoStamp","JSON","parse","dateTime","lat","lng","accuracy","strDMS","strDMSWithAccuracy","fontSize","OS","options","backgroundImage","src","file_path","scale","watermarkTexts","text","position","topLeft","style","color","fontName","textBackgroundStyle","padding","type","none","quality","filename","saveFormat","jpg","markText","completeFilePath","includes","processBase64Data","imagePath","TemporaryDirectoryPath","writeFile","processedBase64","splittedDase64Data","split","processPODData","_this$documentHttpCli","docRow","uploadDocument","extraParameters","folderName","fms_folder_id","SDK_ERROR","_error$response","_error$response2","cta","severityLevel","ERROR","eventName","API_ERROR","screenName","extraParams","stringify","response","status","getAllDocuments","dispatchID","clearSyncedDocs","deleteAllSyncedDocuments","_class"],"sources":["DocumentSyncManager.ts"],"sourcesContent":["import type { DocumentRow } from '../DBConfig';\nimport DocumentManager from './DocumentManager';\nimport DocumentHttpClient from './DocumentHttpClient';\nimport { isEmptyOrBlank, flattenObject } from '../../../utils/utils';\nimport { BaseError } from '../../../errors/BaseError';\nimport BaseErrorCodes, {\n InvalidArgumentsError,\n InvalidBaseURL,\n SyncManagerNotInitialized,\n} from '../../../errors/ErrorCodes';\nimport Logger, { LOG_TYPE } from '../../../utils/Logger';\nimport type { SQLResultSet } from 'expo-sqlite';\nimport NetworkUtil from '../../../utils/NetworkUtil';\nimport Marker, {\n Position,\n TextBackgroundType,\n ImageFormat,\n} from 'react-native-image-marker';\nimport RNFS from 'react-native-fs';\nimport Storage from '../../../utils/storage';\nimport { Platform } from 'react-native';\nimport { ScreenNameSdkConstants, SentryEventNameSdkConstants, SeverityLevelValue } from '../../../analytics/sentry/SentrySdkConstants';\nimport { fireEventWithScreenName } from '../../../analytics/sentry/SentryAnalyticsUtils';\nconst latlngToDms = require('latlng-to-dms');\n\n\nexport default class DocumentSyncManager {\n private documentHttpClient: DocumentHttpClient | undefined;\n private inProgress: boolean = false;\n private static instance: DocumentSyncManager;\n private docManager: DocumentManager | undefined;\n private maxRetryCount: number = 3;\n private _retries = 0;\n\n get retries(): number {\n return this._retries;\n }\n\n set retries(value: number) {\n this._retries = value;\n }\n\n private constructor() {}\n\n public init(baseURL: string, retryCount: number) {\n if (isEmptyOrBlank(baseURL))\n throw new BaseError(BaseErrorCodes.InvalidBaseURL, InvalidBaseURL);\n this.maxRetryCount = retryCount;\n this.documentHttpClient = new DocumentHttpClient(baseURL);\n }\n\n public static getInstance(): DocumentSyncManager {\n if (!DocumentSyncManager.instance) {\n DocumentSyncManager.instance = new DocumentSyncManager();\n }\n return DocumentSyncManager.instance;\n }\n\n public async startDocumentSync(): Promise<void> {\n if (!this.inProgress && this._retries < this.maxRetryCount) {\n this.inProgress = true;\n const hasNetwork = await NetworkUtil.isAvailableAsync();\n try {\n this.checkForInitialization();\n if (!this.docManager) {\n this.docManager = await DocumentManager.getInstance();\n }\n if (hasNetwork) {\n let documentRows: DocumentRow[] =\n await this.docManager.getUnsyncedDocument();\n if (documentRows?.length > 0) {\n await this.uploadDocToServer(documentRows[0]);\n } else {\n Logger.getInstance().logEvent(\n 'startDocumentSync',\n 'No data to sync',\n LOG_TYPE.SDK_INFO\n );\n }\n } else {\n Logger.getInstance().logEvent(\n 'startDocumentSync',\n 'No Network',\n LOG_TYPE.SDK_INFO\n );\n }\n } catch (error: any) {\n } finally {\n this.inProgress = false;\n if ((await this.isSyncPending()) && hasNetwork) {\n await this.startDocumentSync();\n }\n }\n } else {\n Logger.getInstance().logEvent(\n 'startDocumentSync',\n 'sync already in progress ',\n LOG_TYPE.SDK_INFO\n );\n }\n }\n\n public async isSyncPending(): Promise<boolean> {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n let leftDocuments = await this.docManager.getAllUnsyncedDocs();\n return leftDocuments?.length > 0 && this._retries < this.maxRetryCount;\n }\n\n public async insertDocument(\n fmsFolderID: string | null,\n data: string | null,\n base64: boolean,\n desc: string,\n dspID: string,\n // jobID: string,\n // objRef: string,\n filePath: string | null,\n fileType: string,\n fileName: string,\n geoTimeStamp: string,\n processedFilePath: string,\n priority: number = 1\n ): Promise<SQLResultSet> {\n if (\n isEmptyOrBlank(desc) ||\n isEmptyOrBlank(dspID) ||\n // isEmptyOrBlank(jobID) ||\n // isEmptyOrBlank(objRef) ||\n isEmptyOrBlank(fileType) ||\n isEmptyOrBlank(fileName) ||\n (base64 && isEmptyOrBlank(data)) ||\n (!base64 && isEmptyOrBlank(filePath))\n )\n throw new BaseError(\n BaseErrorCodes.InvalidArgumentError,\n InvalidArgumentsError\n );\n else {\n if (!this.docManager) {\n Logger.getInstance().logEvent(\n 'insertDocument',\n 'INIT DOC SYNC AGAIN',\n LOG_TYPE.SDK_INFO\n );\n this.docManager = await DocumentManager.getInstance();\n }\n console.log('insertDocument1:',fmsFolderID);\n let insertResponse = await this.docManager?.insertDocument(\n fmsFolderID,\n desc,\n dspID,\n // jobID,\n // objRef,\n base64,\n fileName,\n fileType,\n data,\n filePath,\n geoTimeStamp,\n processedFilePath,\n priority\n );\n return insertResponse;\n }\n }\n\n public async forceDocumentSync() {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n this._retries = 0;\n await this.startDocumentSync();\n }\n\n private async updateDocument(documentRow: DocumentRow, fmsID: string) {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n try {\n await this.docManager.markDocumentSynced(documentRow.id, fmsID);\n } catch (err: any) {\n Logger.getInstance().logEvent(\n 'updateDocument',\n err.message,\n LOG_TYPE.SDK_WARNING\n );\n }\n }\n\n // This function is updating processed_file_path column for the base64 overlayed data and overlayed image file for POD. Also if it is base 64 then it is also storing temprary file path in file_path as original bae64 image.\n private async updateDocumentProcessedPath(\n documentRow: DocumentRow,\n origialFilePath: String,\n processedPath: String\n ) {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n try {\n await this.docManager.updateProcesedFilePath(\n documentRow.id,\n origialFilePath,\n processedPath\n );\n } catch (err: any) {\n Logger.getInstance().logEvent(\n 'updateDocument',\n err.message,\n LOG_TYPE.SDK_WARNING\n );\n }\n }\n\n private async updateDocError(documentRow: DocumentRow, uploadError: string) {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n try {\n await this.docManager.updateDocSyncError(documentRow.id, uploadError);\n } catch (err: any) {\n Logger.getInstance().logEvent(\n 'updateDocError',\n err.message,\n LOG_TYPE.SDK_WARNING\n );\n }\n }\n private checkForInitialization() {\n if (!this.documentHttpClient) {\n throw new BaseError(\n BaseErrorCodes.SyncManagerNotInitialized,\n SyncManagerNotInitialized\n );\n }\n }\n\n // This function will generate overlay image and update documents table for processed_file_path columns with overlayed image path.\n private async processImageData(documentRow: DocumentRow) {\n // If processed_file_path of overlayed image already existing then do not generate it again.\n if (\n documentRow.processed_file_path === null ||\n documentRow.processed_file_path === ''\n ) {\n let pFilePath = 'processed_' + documentRow.file_name; // File name for processed file.\n let strGeoStamp = documentRow.geo_timestamp; // Saved geostamp string\n let objGeoStamp = JSON.parse(strGeoStamp); // Conversion to geostamp object\n let dateTime = objGeoStamp.dateTime; // Date time stamp in UTC format\n let lat = objGeoStamp.lat; // Latitide\n let lng = objGeoStamp.lng; // Longitude\n let accuracy = objGeoStamp.accuracy; // Location accuracy\n let strDMS = latlngToDms(`${lat}, ${lng}`); // Location in degree format\n let strDMSWithAccuracy = strDMS; \n if (accuracy !== '') {\n strDMSWithAccuracy = strDMS + ' (Accuracy: ' + accuracy + 'm)'; // Appedning accuracy in location \n }\n let fontSize = 14;\n if (Platform.OS !== 'android') {\n fontSize = 28;\n }\n const options = {\n backgroundImage: { // Image for overlay\n src: documentRow.file_path,\n scale: 1,\n },\n watermarkTexts: [ \n {\n text: `${dateTime}\\n${strDMSWithAccuracy}`, //Overlay text\n position: {\n position: Position.topLeft, // Overlay text position\n },\n style: { // Style for overlay\n color: '#ffffff',\n fontSize: fontSize,\n fontName: 'Arial',\n textBackgroundStyle: {\n padding: '1% 1%',\n type: TextBackgroundType.none,\n color: '#444444CC',\n },\n },\n },\n ],\n scale: 0,\n quality: 100, \n filename: pFilePath,\n saveFormat: ImageFormat.jpg, // Saving in jpeg format\n };\n let processedFilePath = await Marker.markText(options); // Generating overlay image\n if (processedFilePath !== null && processedFilePath !== '') {\n let completeFilePath = processedFilePath;\n // If processd image file path does not have prefix file:// then we are addding manually\n if (!processedFilePath.includes('file')) {\n completeFilePath = 'file://' + processedFilePath;\n }\n // Updating document document table with overlayed image path\n this.updateDocumentProcessedPath(\n documentRow,\n documentRow.file_path, //original file path catprued from camera\n completeFilePath // completeFilePath is the path with file:// of processed file \n );\n documentRow.processed_file_path = completeFilePath; \n }\n }\n return documentRow;\n }\n\n // This function will generate overlay base64 data and update documents table for processed_file_path columns with overlayed base64 data.\n private async processBase64Data(documentRow: DocumentRow) {\n // If base64 overlayed data already existing then do not generate it again.\n if (\n documentRow.processed_file_path === null ||\n documentRow.processed_file_path === ''\n ) {\n let filePath = '';\n // If templrary base 64 file already exist then do not create again\n if (documentRow.file_path === null || documentRow.file_path === '') {\n const imagePath = `${RNFS.TemporaryDirectoryPath}/${documentRow.file_name}`;\n await RNFS.writeFile(imagePath, documentRow.data, 'base64'); // Write file to temprary location\n filePath = imagePath;\n // If file generated frommbase64 data does not have file:// then we are adding manually.\n if (!imagePath.includes('file')) {\n filePath = `file://${imagePath}`;\n }\n documentRow.file_path = filePath;\n } else {\n filePath = documentRow.file_path;\n }\n let pFilePath = 'processed_' + documentRow.file_name; // File name for processed file.\n let strGeoStamp = documentRow.geo_timestamp; // Saved geostamp string\n let objGeoStamp = JSON.parse(strGeoStamp); // Conversion to geostamp object\n let dateTime = objGeoStamp.dateTime; // Date time stamp in UTC format\n let lat = objGeoStamp.lat; // Latitide\n let lng = objGeoStamp.lng; // Longitude\n let accuracy = objGeoStamp.accuracy; // Location accuracy\n let strDMS = latlngToDms(`${lat}, ${lng}`); // Location in degree format\n let strDMSWithAccuracy = strDMS; \n if (accuracy !== '') {\n strDMSWithAccuracy = strDMS + ' (Accuracy: ' + accuracy + 'm)'; // Appedning accuracy in location \n }\n const options = {\n backgroundImage: {\n src: filePath, // Image for overlay\n scale: 1,\n },\n watermarkTexts: [\n {\n text: `${dateTime}\\n${strDMSWithAccuracy}`, // Ooverlay text\n position: {\n position: Position.topLeft, // Overlay text position\n },\n style: { // Style for overlay\n color: '#ffffff',\n fontSize: 14,\n fontName: 'Arial',\n textBackgroundStyle: {\n padding: '1% 1%',\n type: TextBackgroundType.none,\n color: '#444444CC',\n },\n },\n },\n ],\n scale: 1,\n quality: 100,\n filename: pFilePath,\n saveFormat: ImageFormat.base64, // Saving in base6 format\n };\n let processedBase64 = await Marker.markText(options); // Generating overlay image\n if (processedBase64 !== null && processedBase64 !== '') {\n // Fetching base64 data from processed data.\n var splittedDase64Data = processedBase64.split(\n 'data:image/png;base64,'\n );\n // Updating document document table with overlayed base64 data\n await this.updateDocumentProcessedPath(\n documentRow,\n filePath,\n splittedDase64Data[1]\n );\n documentRow.processed_file_path = splittedDase64Data[1];\n }\n }\n return documentRow;\n }\n\n // This function will calling respective overlay method for base64 (for signature POD) or image (for image POD).\n private async processPODData(documentRow: DocumentRow) {\n if (documentRow.base64 && documentRow.data != null) {\n return await this.processBase64Data(documentRow);\n } else {\n return await this.processImageData(documentRow);\n }\n }\n\n private async uploadDocToServer(documentRow: DocumentRow) {\n try {\n let docRow = await this.processPODData(documentRow);\n console.log('uploadDocToServer999:', docRow);\n let fmsID = await this.documentHttpClient?.uploadDocument(documentRow);\n\n let extraParameters = {\n fmsID: fmsID ?? '',\n fileName: docRow.file_name,\n folderName: docRow.fms_folder_id\n };\n // TODO: SOLELY DEPENDS ON FMS_ID WHICH IS WRONG => IT SHOULD BE Response.status = 202\n if (fmsID) {\n this._retries = 0;\n await this.updateDocument(docRow, fmsID);\n } else {\n this._retries++;\n Logger.getInstance().logEvent(\n 'uploadDocToServer-empty-fms-id',\n flattenObject(extraParameters),\n LOG_TYPE.SDK_ERROR\n );\n await this.updateDocError(docRow, 'Unexpected Error');\n }\n } catch (error: any) {\n const cta = 'uploadDocToServer-error';\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.ERROR,\n eventName: SentryEventNameSdkConstants.API_ERROR,\n screenName: cta,\n cta: cta,\n extraParams: {\n error: error.message,\n },\n });\n this._retries++;\n Logger.getInstance().logEvent(\n 'uploadDocToServer-sync-error',\n error.message,\n LOG_TYPE.SDK_ERROR\n );\n await this.updateDocError(\n documentRow,\n JSON.stringify({\n message: error.message,\n error: JSON.stringify(error?.response?.data),\n status: error?.response?.status,\n })\n );\n }\n }\n\n public async getAllDocuments(dispatchID?: string): Promise<DocumentRow[]> {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n return this.docManager.getAllDocuments(dispatchID);\n }\n\n public async clearSyncedDocs(dspID: string) {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n if (dspID) await this.docManager.deleteAllSyncedDocuments(dspID);\n }\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -189,10 +189,9 @@ export async function captureImage(
|
|
|
189
189
|
//
|
|
190
190
|
if (uri != null) {
|
|
191
191
|
|
|
192
|
-
let compressionRatio = await getCompressionRatio(uri, fileSize);
|
|
192
|
+
let compressionRatio = 0.80 //await getCompressionRatio(uri, fileSize);
|
|
193
193
|
console.log('aks:compressionRatio=', compressionRatio);
|
|
194
|
-
|
|
195
|
-
Storage.getInstance().setItem('cRatio', String(compressionRatio));
|
|
194
|
+
|
|
196
195
|
|
|
197
196
|
console.log('aks:uri=', uri);
|
|
198
197
|
|
|
@@ -246,18 +246,9 @@ export default class DocumentSyncManager {
|
|
|
246
246
|
strDMSWithAccuracy = strDMS + ' (Accuracy: ' + accuracy + 'm)'; // Appedning accuracy in location
|
|
247
247
|
}
|
|
248
248
|
let fontSize = 14;
|
|
249
|
-
|
|
250
|
-
let fileSize = await Storage.getInstance().getItem('maxSize'); // File max size
|
|
251
|
-
let cRatio = await Storage.getInstance().getItem('cRatio'); // File compression ratio
|
|
252
|
-
let nFileSize = Number(fileSize);
|
|
253
|
-
let ncRatio = Number(cRatio);
|
|
254
|
-
let wholeRatio = Math.round(ncRatio * 100); // Compression ratio to be made
|
|
255
249
|
if (Platform.OS !== 'android') {
|
|
256
250
|
fontSize = 28;
|
|
257
251
|
}
|
|
258
|
-
if(wholeRatio >= 75){
|
|
259
|
-
wholeRatio = 25;
|
|
260
|
-
}
|
|
261
252
|
const options = {
|
|
262
253
|
backgroundImage: { // Image for overlay
|
|
263
254
|
src: documentRow.file_path,
|
|
@@ -281,9 +272,8 @@ export default class DocumentSyncManager {
|
|
|
281
272
|
},
|
|
282
273
|
},
|
|
283
274
|
],
|
|
284
|
-
scale:
|
|
285
|
-
quality: 100
|
|
286
|
-
maxSize: nFileSize, // Max file size in which file will generate
|
|
275
|
+
scale: 0,
|
|
276
|
+
quality: 100,
|
|
287
277
|
filename: pFilePath,
|
|
288
278
|
saveFormat: ImageFormat.jpg, // Saving in jpeg format
|
|
289
279
|
};
|