From 8aec31dd4744fa2baff587b6f3cba7f2c2b4eef0 Mon Sep 17 00:00:00 2001 From: Sohan Reddy Atukula Date: Thu, 22 May 2025 15:28:56 +0530 Subject: [PATCH] =?UTF-8?q?NTP-65561=20|=20Sohan=20|=20Added=20device=20ra?= =?UTF-8?q?m=20as=20an=20input=20parameter=20to=20Home=20pa=E2=80=A6=20(#1?= =?UTF-8?q?6248)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../home/usecase/FetchHomeItemsUseCase.kt | 16 +++++++++++++++- .../com/naviapp/home/viewmodel/HomeViewModel.kt | 4 ++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/android/app/src/main/java/com/naviapp/home/usecase/FetchHomeItemsUseCase.kt b/android/app/src/main/java/com/naviapp/home/usecase/FetchHomeItemsUseCase.kt index 5a823d215e..c039e6aad2 100644 --- a/android/app/src/main/java/com/naviapp/home/usecase/FetchHomeItemsUseCase.kt +++ b/android/app/src/main/java/com/naviapp/home/usecase/FetchHomeItemsUseCase.kt @@ -19,6 +19,7 @@ import com.navi.common.network.models.ErrorMessage import com.navi.common.network.models.GenericErrorResponse import com.navi.common.network.models.RepoResult import com.navi.common.network.models.isSuccessWithData +import com.navi.common.utils.getDeviceModelName import com.naviapp.BuildConfig import com.naviapp.app.NaviApplication import com.naviapp.home.respository.HomeRepository @@ -39,6 +40,7 @@ constructor( screenHash: String? = null, naeScreenName: String, shouldShowNae: Boolean, + totalRam: Double, noInternetCallback: () -> Unit, onFailure: suspend (apiErrorMessage: ErrorMessage?, errors: List?) -> Unit, @@ -82,7 +84,7 @@ constructor( AlchemistScreenRequest( screenName = HOME_SCREEN_IN_CAPS, screenHash = screenHashForApi, - inputMap = queryMap, + inputMap = buildQueryMap(queryMap = queryMap, totalRam = totalRam), ), naeScreenName = naeScreenName, ) @@ -144,8 +146,20 @@ constructor( return NaviCacheAltSourceEntity(isSuccess = false) } + private fun buildQueryMap( + queryMap: HashMap, + totalRam: Double, + ): HashMap { + queryMap[DEVICE_RAM_GB] = totalRam.toString() + val deviceName = getDeviceModelName() + queryMap[DEVICE_NAME] = deviceName.toString() + return queryMap + } + companion object { const val SCREEN_STRUCTURE_AND_META_DATA_NULL = "Both screen structure and meta data is null" + const val DEVICE_RAM_GB = "deviceRamGb" + const val DEVICE_NAME = "deviceName" } } diff --git a/android/app/src/main/java/com/naviapp/home/viewmodel/HomeViewModel.kt b/android/app/src/main/java/com/naviapp/home/viewmodel/HomeViewModel.kt index f6f483bee6..1fe0a710a1 100644 --- a/android/app/src/main/java/com/naviapp/home/viewmodel/HomeViewModel.kt +++ b/android/app/src/main/java/com/naviapp/home/viewmodel/HomeViewModel.kt @@ -65,6 +65,7 @@ import com.naviapp.utils.Constants.HomePageConstants.FETCH_HOME_ITEMS_TIMEOUT import com.naviapp.utils.SelectiveRefreshHandler import dagger.Lazy import dagger.hilt.android.lifecycle.HiltViewModel +import dagger.hilt.android.qualifiers.ApplicationContext import javax.inject.Inject import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job @@ -94,6 +95,7 @@ constructor( val sectionVisibilityTracker: HomePageSectionImpressionTracker, val postRenderTaskExecutor: PostRenderTaskExecutor, private val homeContentProcessingUseCase: HomeContentProcessingUseCase, + @ApplicationContext val context: Context, ) : BaseMviViewModel( initialState = HpStates(), @@ -105,6 +107,7 @@ constructor( private var analyticsStartTs = System.currentTimeMillis() private var isHomeUIRenderedEventLogged = false var isErrorNaeTriggered = false + private val totalRamMemory = getTotalRamMemory(context = context)?.toDoubleOrNull() ?: 100.0 // Internet Connectivity private val _internetConnectivity = MutableSharedFlow() @@ -201,6 +204,7 @@ constructor( screenHash = screenHash, shouldShowNae = shouldShowNae.orFalse(), naeScreenName = naeScreenName, + totalRam = totalRamMemory, onFailure = { errorMessage, errors -> setEffect { HpEffects.OnApiFailure(errorMessage, errors) } },