Logic for calculating activity updated
This commit is contained in:
8
App.tsx
8
App.tsx
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user