diff --git a/android/app/src/main/java/com/naviapp/app/NaviApplication.kt b/android/app/src/main/java/com/naviapp/app/NaviApplication.kt index fcae926986..5d906bb7de 100644 --- a/android/app/src/main/java/com/naviapp/app/NaviApplication.kt +++ b/android/app/src/main/java/com/naviapp/app/NaviApplication.kt @@ -16,6 +16,7 @@ import coil.ImageLoaderFactory import com.navi.base.cache.repository.NaviCacheRepository import com.navi.base.utils.TrustedTimeClientAccessor import com.navi.bbps.common.model.NaviBbpsManager +import com.navi.common.utils.log import com.navi.moneymanager.common.manager.MMLibManager import com.navi.pay.common.setup.NaviPayManager import com.navi.traceflow.Config @@ -97,5 +98,7 @@ open class NaviApplication : BaseApplication(), ImageLoaderFactory, Configuratio Configuration.Builder() .setWorkerFactory(workerFactory = workerFactory.get()) .setMinimumLoggingLevel(if (BuildConfig.DEBUG) Log.DEBUG else Log.ERROR) + .setInitializationExceptionHandler { it.log() } + .setWorkerInitializationExceptionHandler { it.throwable.log() } .build() } diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/analytics/NaviPayAnalytics.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/analytics/NaviPayAnalytics.kt index 245d2bb902..506e1dd635 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/analytics/NaviPayAnalytics.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/analytics/NaviPayAnalytics.kt @@ -219,10 +219,10 @@ class NaviPayToContacts @Inject constructor() { class NaviPayDarkKnightWorker { - fun onDarkKnightTriggered(triggeredTime: String) { + fun onDarkKnightTriggered(isTriggeredWithinOffHours: Boolean) { NaviTrackEvent.trackEventOnClickStream( eventName = "NaviPay_DarkKnight_Triggered", - eventValues = mapOf("triggeredTime" to triggeredTime), + eventValues = mapOf("isTriggeredWithinOffHours" to isTriggeredWithinOffHours.toString()), ) } diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/common/batman/DarkKnightScheduler.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/common/batman/DarkKnightScheduler.kt index 272f7cec08..3f7155ff86 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/common/batman/DarkKnightScheduler.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/common/batman/DarkKnightScheduler.kt @@ -36,7 +36,10 @@ constructor(@ApplicationContext private val context: Context) : DarkKnightSchedu override suspend fun schedulePeriodicSync() { val constraints = - Constraints.Builder().setRequiredNetworkType(NetworkType.CONNECTED).build() + Constraints.Builder() + .setRequiredNetworkType(networkType = NetworkType.CONNECTED) + .setRequiresStorageNotLow(requiresStorageNotLow = true) + .build() val initialDelay = calculateInitialDelayInMillis() diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/common/batman/DarkKnightWorker.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/common/batman/DarkKnightWorker.kt index 7723512162..c1aa28c3bc 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/common/batman/DarkKnightWorker.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/common/batman/DarkKnightWorker.kt @@ -12,7 +12,6 @@ import androidx.hilt.work.HiltWorker import androidx.work.CoroutineWorker import androidx.work.WorkerParameters import com.navi.base.utils.BaseUtils -import com.navi.base.utils.DateUtils import com.navi.base.utils.TrustedTimeAccessor import com.navi.base.utils.log import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper @@ -33,7 +32,6 @@ import com.navi.pay.tstore.list.model.view.OrderStatusOfView import com.navi.pay.tstore.list.repository.OrderRepository import com.navi.pay.tstore.utils.error.OrderErrorMappingManager import com.navi.pay.utils.DARK_KNIGHT_WORKER -import com.navi.pay.utils.DATE_TIME_FORMAT_DATE_MONTH_NAME_YEAR_AT_TIME import com.navi.pay.utils.NAVI_PAY_LITMUS_EXPERIMENTS import com.navi.payments.shared.feature.arc.usecase.ArcNudgeSyncUseCase import dagger.assisted.Assisted @@ -81,14 +79,17 @@ constructor( return@withContext Result.success() } + val currentHour = DateTime(TrustedTimeAccessor.getCurrentTimeMillis()).hourOfDay + val isTriggeredWithinOffHours = currentHour >= 1 && currentHour < 5 + naviPayAnalytics.onDarkKnightTriggered( - triggeredTime = - DateUtils.getFormattedDateTimeAsStringFromDateTimeObject( - dateTime = DateTime(TrustedTimeAccessor.getCurrentTimeMillis()), - format = DATE_TIME_FORMAT_DATE_MONTH_NAME_YEAR_AT_TIME, - ) + isTriggeredWithinOffHours = isTriggeredWithinOffHours ) + if (!isTriggeredWithinOffHours) { + return@withContext Result.success() + } + if (!BaseUtils.isUserLoggedIn()) { naviPayAnalytics.onUserNotLoggedIn() return@withContext Result.success() @@ -172,7 +173,11 @@ constructor( tasks.add( async { commonRepository.fetchNpciKeys( - metricInfo = getMetricInfo(screenName = screenName) + metricInfo = + getMetricInfo( + screenName = screenName, + isNae = { false }, + ) ) } )