Logic for calculating activity updated

This commit is contained in:
ShriPrakashBajpai
2023-09-19 12:49:35 +05:30
parent bc5e51c4bd
commit f0c67fd1e9
2 changed files with 11 additions and 7 deletions

View File

@@ -23,7 +23,7 @@ import { toastConfigs, ToastContainer } from './RN-UI-LIB/src/components/toast';
import { APM_APP_NAME, APM_BASE_URL, ENV } from './src/constants/config';
import { COLORS } from './RN-UI-LIB/src/styles/colors';
import { LocalStorageKeys } from './src/common/Constants';
import { CLICKSTREAM_EVENT_NAMES, LocalStorageKeys } from './src/common/Constants';
import Permissions from './src/screens/permissions/Permissions';
import { setJsErrorHandler } from './src/services/exception-handler.service';
import SuspenseLoader from './RN-UI-LIB/src/components/suspense_loader/SuspenseLoader';
@@ -43,6 +43,7 @@ import dayJs from 'dayjs';
import { GlobalImageMap, hydrateGlobalImageMap } from './src/common/CachedImage';
import analytics from '@react-native-firebase/analytics';
import handleUpdatedConfigureValuesFromFirebase from './src/services/firebaseFetchAndUpdate.service';
import { addClickstreamEvent } from './src/services/clickstreamEventService';
initSentry();
@@ -107,9 +108,10 @@ function App() {
return route?.name || '';
};
async function setForegroundTimeStamp() {
async function setForegroundTimeStampAndClickstream() {
const now = dayJs().toString();
await setItem(StorageKeys.APP_FOREGROUND_TIMESTAMP, now);
addClickstreamEvent(CLICKSTREAM_EVENT_NAMES.AV_APP_FOREGROUND, { now });
}
usePolling(askForPermissions, PERMISSION_CHECK_POLL_INTERVAL);
@@ -138,7 +140,7 @@ function App() {
})();
checkCodePushAndSync();
handleUpdatedConfigureValuesFromFirebase();
setForegroundTimeStamp();
setForegroundTimeStampAndClickstream();
return () => {
appStateChange.remove();

View File

@@ -43,6 +43,8 @@ import {
import RNFS from 'react-native-fs';
import { GlobalImageMap } from './CachedImage';
import { get } from 'react-hook-form';
import { addClickstreamEvent } from '../services/clickstreamEventService';
import { CLICKSTREAM_EVENT_NAMES } from './Constants';
export enum FOREGROUND_TASKS {
GEOLOCATION = 'GEOLOCATION',
@@ -283,13 +285,13 @@ const TrackingComponent: React.FC<ITrackingComponent> = ({ children }) => {
await setItem(StorageKeys.USER_ACTIVITY_ON_APP, AgentActivity.MEDIUM);
//await setItem(StorageKeys.STATE_SET_TIMESTAMP, stateSetTime.add(2, 'minutes').toString());
console.log('isStateSetTimeWithInMediumRange MEDIUM');
console.log('Medium State Set Time' + (await getItem(StorageKeys.STATE_SET_TIMESTAMP)));
console.log('Medium State Set with High Timestamp at ' + stateSetTimestamp);
return;
} else {
await setItem(StorageKeys.USER_ACTIVITY_ON_APP, AgentActivity.LOW);
//await setItem(StorageKeys.STATE_SET_TIMESTAMP, stateSetTime.add(4, 'minutes').toString());
console.log('isStateSetTimeWithInLowRange LOW');
console.log('Low State Set Time' + (await getItem(StorageKeys.STATE_SET_TIMESTAMP)));
console.log('Low State Set with High Timestamp at' + stateSetTimestamp);
return;
}
@@ -395,7 +397,6 @@ const TrackingComponent: React.FC<ITrackingComponent> = ({ children }) => {
const userActivityUpdateOnBackground = async () => {
const foregroundTimestamp = await getItem(StorageKeys.APP_FOREGROUND_TIMESTAMP);
const backgroundTimestamp = await getItem(StorageKeys.APP_BACKGROUND_TIMESTAMP);
const foregroundTime = dayJs(foregroundTimestamp);
const backgroundTime = dayJs(backgroundTimestamp);
const diffBetweenBackgroundAndForegroundTime = dayJs(backgroundTime).diff(
@@ -407,7 +408,6 @@ const TrackingComponent: React.FC<ITrackingComponent> = ({ children }) => {
if (diffBetweenBackgroundAndForegroundTime >= ACTIVITY_TIME_ON_APP) {
await setItem(StorageKeys.USER_ACTIVITY_ON_APP, AgentActivity.HIGH);
await setItem(StorageKeys.STATE_SET_TIMESTAMP, dayJs().toString());
console.log('AppGoesBackgroundState HIGH');
console.log(
'High State Set Time on Background' + (await getItem(StorageKeys.STATE_SET_TIMESTAMP))
);
@@ -424,6 +424,7 @@ const TrackingComponent: React.FC<ITrackingComponent> = ({ children }) => {
if (nextAppState === AppStates.ACTIVE) {
console.log('App State Active');
await setItem(StorageKeys.APP_FOREGROUND_TIMESTAMP, now);
addClickstreamEvent(CLICKSTREAM_EVENT_NAMES.AV_APP_FOREGROUND, { now });
handleGetCaseSyncStatus();
dispatch(getConfigData());
CosmosForegroundService.start(tasks);
@@ -432,6 +433,7 @@ const TrackingComponent: React.FC<ITrackingComponent> = ({ children }) => {
console.log('App State Background');
await setItem(StorageKeys.APP_BACKGROUND_TIMESTAMP, now);
userActivityUpdateOnBackground();
addClickstreamEvent(CLICKSTREAM_EVENT_NAMES.AV_APP_BACKGROUND, { now });
}
appState.current = nextAppState;
};