diff --git a/App.tsx b/App.tsx index f03877a2..5539ee6b 100644 --- a/App.tsx +++ b/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(); diff --git a/src/common/TrackingComponent.tsx b/src/common/TrackingComponent.tsx index 8b72a6b9..eabb73f6 100644 --- a/src/common/TrackingComponent.tsx +++ b/src/common/TrackingComponent.tsx @@ -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 = ({ 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 = ({ 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 = ({ 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 = ({ 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 = ({ 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; };