TP-64841 | methods, classes & package restructuring & removed unused … (#10786)
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
android:supportsRtl="true">
|
||||
|
||||
<activity
|
||||
android:name="com.navi.coin.ui.compose.CoinActivity"
|
||||
android:name="com.navi.coin.ui.activity.CoinActivity"
|
||||
android:exported="false"
|
||||
android:launchMode="singleTask"
|
||||
android:screenOrientation="portrait"
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
|
||||
package com.navi.coin.network.di
|
||||
package com.navi.coin.di.module
|
||||
|
||||
import com.google.gson.Gson
|
||||
import com.navi.coin.network.retrofit.CoinHttpClient
|
||||
import com.navi.coin.network.retrofit.RetrofitService
|
||||
import com.navi.coin.utils.CountDownFacade
|
||||
import com.navi.coin.utils.ICountDownHelper
|
||||
import com.navi.coin.di.qualifiers.CoinRetrofit
|
||||
import com.navi.coin.network.CoinHttpClient
|
||||
import com.navi.coin.network.RetrofitService
|
||||
import com.navi.coin.utils.constant.Constants
|
||||
import com.navi.common.CommonLibManager
|
||||
import com.navi.common.model.ModuleName
|
||||
import com.navi.common.model.ModuleNameV2
|
||||
import com.navi.common.model.NetworkInfo
|
||||
import com.navi.common.network.converter.EmptyBodyHandlingConverterFactory
|
||||
@@ -27,7 +27,13 @@ object NetworkModule {
|
||||
@Singleton
|
||||
@Provides
|
||||
@CoinRetrofit
|
||||
fun providesNetworkInfo(): NetworkInfo = getNetworkInfo()
|
||||
fun providesNetworkInfo() = NetworkInfo(
|
||||
appVersionName = CommonLibManager.buildConfigDetails.appVersionName,
|
||||
appVersionCode = CommonLibManager.buildConfigDetails.appVersionCode,
|
||||
moduleName = ModuleName.COIN,
|
||||
timeoutInSec = Constants.ApiConstants.API_CONNECT_TIMEOUT_VALUE,
|
||||
baseUrl = CommonLibManager.buildConfigDetails.baseUrl
|
||||
)
|
||||
|
||||
@Singleton
|
||||
@Provides
|
||||
@@ -44,7 +50,7 @@ object NetworkModule {
|
||||
@Provides
|
||||
fun provideApiService(
|
||||
@Named("coinGson") deserializer: Gson,
|
||||
@CoinRetrofit naviHttpClient: CoinHttpClient
|
||||
@CoinRetrofit naviHttpClient: CoinHttpClient,
|
||||
): RetrofitService {
|
||||
val retrofit =
|
||||
Retrofit.Builder()
|
||||
@@ -55,9 +61,4 @@ object NetworkModule {
|
||||
.build()
|
||||
return retrofit.create(RetrofitService::class.java)
|
||||
}
|
||||
|
||||
@Provides
|
||||
@CountDownHelperQualifier
|
||||
fun getPlatformNavigationHandler(): ICountDownHelper = CountDownFacade()
|
||||
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.navi.coin.di.module
|
||||
|
||||
import com.navi.coin.di.qualifiers.CountDownHelperQualifier
|
||||
import com.navi.coin.utils.facade.CountDownFacade
|
||||
import com.navi.coin.utils.facade.ICountDownHelper
|
||||
import dagger.Module
|
||||
import dagger.Provides
|
||||
import dagger.hilt.InstallIn
|
||||
import dagger.hilt.components.SingletonComponent
|
||||
|
||||
@Module
|
||||
@InstallIn(SingletonComponent::class)
|
||||
object UtilityModule {
|
||||
@Provides
|
||||
@CountDownHelperQualifier
|
||||
fun getPlatformNavigationHandler(): ICountDownHelper = CountDownFacade()
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.navi.coin.network.di
|
||||
package com.navi.coin.di.qualifiers
|
||||
|
||||
import javax.inject.Qualifier
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
/*
|
||||
*
|
||||
* * Copyright © 2024 by Navi Technologies Limited
|
||||
* * All rights reserved. Strictly confidential
|
||||
*
|
||||
*/
|
||||
|
||||
package com.navi.coin.models
|
||||
|
||||
data class CoinHistoryNavArgs(
|
||||
val initialTab: Int = 0,
|
||||
val showBottomSheet: Boolean = false,
|
||||
)
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.navi.coin.models
|
||||
package com.navi.coin.models.model
|
||||
|
||||
import android.os.Parcelable
|
||||
import com.navi.common.model.RequestConfig
|
||||
@@ -5,7 +5,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
package com.navi.coin.models
|
||||
package com.navi.coin.models.model
|
||||
|
||||
import com.google.gson.annotations.SerializedName
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.navi.coin.models
|
||||
package com.navi.coin.models.model
|
||||
|
||||
import com.google.gson.annotations.SerializedName
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.navi.coin.models
|
||||
package com.navi.coin.models.model
|
||||
|
||||
|
||||
data class VpaValidation(
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.navi.coin.models
|
||||
package com.navi.coin.models.states
|
||||
|
||||
import com.navi.common.forge.model.ScreenDefinition
|
||||
import com.navi.common.network.models.ErrorMessage
|
||||
@@ -5,7 +5,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
package com.navi.coin.utils
|
||||
package com.navi.coin.navigator
|
||||
|
||||
enum class CoinNavigationActions(val initialTab: Int = 0, val showBottomSheet: Boolean = true) {
|
||||
COIN_HOME_SCREEN,
|
||||
@@ -1,12 +1,12 @@
|
||||
package com.navi.coin.utils
|
||||
package com.navi.coin.navigator
|
||||
|
||||
|
||||
import android.os.Bundle
|
||||
import com.navi.coin.ui.compose.destinations.CoinErrorScreenDestination
|
||||
import com.navi.coin.ui.compose.destinations.CoinHistoryScreenDestination
|
||||
import com.navi.coin.ui.compose.destinations.CoinHomeScreenDestination
|
||||
import com.navi.coin.ui.compose.destinations.RedemptionStatusScreenDestination
|
||||
import com.navi.coin.ui.compose.destinations.ScratchCardHistoryScreenDestination
|
||||
import com.navi.coin.ui.compose.screen.destinations.CoinErrorScreenDestination
|
||||
import com.navi.coin.ui.compose.screen.destinations.CoinHistoryScreenDestination
|
||||
import com.navi.coin.ui.compose.screen.destinations.CoinHomeScreenDestination
|
||||
import com.navi.coin.ui.compose.screen.destinations.RedemptionStatusScreenDestination
|
||||
import com.navi.coin.ui.compose.screen.destinations.ScratchCardHistoryScreenDestination
|
||||
import com.navi.naviwidgets.utils.FORWARD_SLASH
|
||||
import com.ramcosta.composedestinations.spec.Direction
|
||||
import com.ramcosta.composedestinations.spec.Route
|
||||
@@ -8,16 +8,11 @@ import com.navi.base.deeplink.util.DeeplinkConstants
|
||||
import com.navi.base.model.CtaData
|
||||
import com.navi.base.utils.orFalse
|
||||
import com.navi.base.utils.orZero
|
||||
import com.navi.coin.ui.compose.CoinActivity
|
||||
import com.navi.coin.utils.Constants.COIN_NAVIGATION_LINK
|
||||
import com.navi.coin.ui.activity.CoinActivity
|
||||
import com.navi.coin.utils.constant.Constants.COIN_NAVIGATION_LINK
|
||||
import timber.log.Timber
|
||||
|
||||
object NaviCoinDeepLinkNavigator {
|
||||
const val coin = "coin"
|
||||
const val COIN_HOME_SCREEN = "COIN_HOME_SCREEN"
|
||||
const val COIN_REWARD_HISTORY_CASH = "COIN_REWARD_HISTORY_CASH"
|
||||
const val COIN_REWARD_HISTORY_COIN = "COIN_REWARD_HISTORY_COIN"
|
||||
const val COIN_REWARD_HISTORY_COIN_BOTTOMSHEET = "COIN_REWARD_HISTORY_COIN_BOTTOMSHEET"
|
||||
|
||||
fun navigate(
|
||||
activity: Activity?,
|
||||
|
||||
@@ -12,7 +12,7 @@ import androidx.compose.runtime.Composable
|
||||
import com.navi.coin.navigator.screens.CoinActivityRegistry
|
||||
import com.navi.coin.navigator.screens.CoinComposableRegistry
|
||||
import com.navi.coin.ui.activity.CoinBaseActivity
|
||||
import com.navi.coin.utils.Constants
|
||||
import com.navi.coin.utils.constant.Constants.COIN_NAVIGATION_LINK
|
||||
import com.navi.rr.common.activity.NavHostControllerOwner
|
||||
import com.navi.rr.navigation.NavArgs
|
||||
import com.navi.rr.navigation.NavigationAction
|
||||
@@ -49,7 +49,7 @@ class CoinNavigator @Inject constructor(
|
||||
navArgs: NavArgs?,
|
||||
navAction: NavigationAction
|
||||
) {
|
||||
navArgs?.bundle?.putString(Constants.COIN_NAVIGATION_LINK, navArgs.ctaData.url)
|
||||
navArgs?.bundle?.putString(COIN_NAVIGATION_LINK, navArgs.ctaData.url)
|
||||
super.navigate(activity, navHostOwner, navArgs, navAction)
|
||||
}
|
||||
}
|
||||
@@ -8,8 +8,8 @@
|
||||
package com.navi.coin.navigator.screens
|
||||
|
||||
import android.app.Activity
|
||||
import com.navi.coin.ui.activity.CoinActivity
|
||||
import com.navi.coin.ui.activity.CoinBaseActivity
|
||||
import com.navi.coin.ui.compose.CoinActivity
|
||||
import com.navi.rr.navigation.registry.def.ActivityRegistry
|
||||
import dagger.hilt.android.scopes.ActivityScoped
|
||||
import javax.inject.Inject
|
||||
|
||||
@@ -9,9 +9,9 @@ package com.navi.coin.navigator.screens
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.compose.runtime.Composable
|
||||
import com.navi.coin.ui.compose.destinations.CoinHomeScreenDestination
|
||||
import com.navi.coin.ui.compose.destinations.RedemptionStatusScreenDestination
|
||||
import com.navi.coin.ui.compose.destinations.ScratchCardHistoryScreenDestination
|
||||
import com.navi.coin.ui.compose.screen.destinations.CoinHomeScreenDestination
|
||||
import com.navi.coin.ui.compose.screen.destinations.RedemptionStatusScreenDestination
|
||||
import com.navi.coin.ui.compose.screen.destinations.ScratchCardHistoryScreenDestination
|
||||
import com.navi.rr.navigation.registry.def.ComposableRegistry
|
||||
import com.ramcosta.composedestinations.spec.Direction
|
||||
import dagger.hilt.android.scopes.ActivityScoped
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
package com.navi.coin.network
|
||||
|
||||
object ApiConstants {
|
||||
const val API_CONNECT_TIMEOUT_VALUE = 20L
|
||||
const val API_SUCCESS_CODE = 200
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.navi.coin.network.retrofit
|
||||
package com.navi.coin.network
|
||||
|
||||
import android.content.Context
|
||||
import com.chuckerteam.chucker.api.ChuckerCollector
|
||||
@@ -5,15 +5,15 @@
|
||||
*
|
||||
*/
|
||||
|
||||
package com.navi.coin.network.retrofit
|
||||
package com.navi.coin.network
|
||||
|
||||
import com.navi.coin.models.RedemptionInfoResponse
|
||||
import com.navi.coin.models.RedemptionRequest
|
||||
import com.navi.coin.models.RedemptionResponse
|
||||
import com.navi.coin.models.RedemptionStatusResponse
|
||||
import com.navi.coin.models.ScratchCardHistoryResponse
|
||||
import com.navi.coin.models.TransactionHistoryResponse
|
||||
import com.navi.coin.models.VpaValidation
|
||||
import com.navi.coin.models.model.RedemptionInfoResponse
|
||||
import com.navi.coin.models.model.RedemptionRequest
|
||||
import com.navi.coin.models.model.RedemptionResponse
|
||||
import com.navi.coin.models.model.RedemptionStatusResponse
|
||||
import com.navi.coin.models.model.ScratchCardHistoryResponse
|
||||
import com.navi.coin.models.model.TransactionHistoryResponse
|
||||
import com.navi.coin.models.model.VpaValidation
|
||||
import com.navi.common.forge.model.ScreenDefinition
|
||||
import com.navi.common.model.UploadDataAsyncResponse
|
||||
import com.navi.common.network.models.GenericResponse
|
||||
@@ -1,16 +0,0 @@
|
||||
package com.navi.coin.network.di
|
||||
|
||||
import com.navi.coin.network.ApiConstants.API_CONNECT_TIMEOUT_VALUE
|
||||
import com.navi.common.CommonLibManager
|
||||
import com.navi.common.model.ModuleName
|
||||
import com.navi.common.model.NetworkInfo
|
||||
|
||||
fun getNetworkInfo(timeOutInSeconds: Long = API_CONNECT_TIMEOUT_VALUE): NetworkInfo {
|
||||
return NetworkInfo(
|
||||
appVersionName = CommonLibManager.buildConfigDetails.appVersionName,
|
||||
appVersionCode = CommonLibManager.buildConfigDetails.appVersionCode,
|
||||
moduleName = ModuleName.COIN,
|
||||
timeoutInSec = timeOutInSeconds,
|
||||
baseUrl = CommonLibManager.buildConfigDetails.baseUrl
|
||||
)
|
||||
}
|
||||
@@ -1,10 +1,11 @@
|
||||
package com.navi.coin.repo
|
||||
package com.navi.coin.repo.pagingsource
|
||||
|
||||
import androidx.paging.PagingSource
|
||||
import androidx.paging.PagingState
|
||||
import com.navi.base.utils.orFalse
|
||||
import com.navi.coin.models.TransactionHistoryCardData
|
||||
import com.navi.coin.utils.Constants.SOMETHING_WENT_WRONG
|
||||
import com.navi.coin.models.model.TransactionHistoryCardData
|
||||
import com.navi.coin.repo.repository.CoinHistoryScreenRepo
|
||||
import com.navi.coin.utils.constant.Constants.SOMETHING_WENT_WRONG
|
||||
import com.navi.coin.vm.CoinHistoryCardScreenState
|
||||
import com.navi.common.utils.log
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
@@ -1,10 +1,11 @@
|
||||
package com.navi.coin.repo
|
||||
package com.navi.coin.repo.pagingsource
|
||||
|
||||
import androidx.paging.PagingSource
|
||||
import androidx.paging.PagingState
|
||||
import com.navi.base.utils.orFalse
|
||||
import com.navi.coin.models.TransactionHistoryCardData
|
||||
import com.navi.coin.utils.Constants.SOMETHING_WENT_WRONG
|
||||
import com.navi.coin.models.model.TransactionHistoryCardData
|
||||
import com.navi.coin.repo.repository.CoinHistoryScreenRepo
|
||||
import com.navi.coin.utils.constant.Constants.SOMETHING_WENT_WRONG
|
||||
import com.navi.coin.vm.CoinHistoryCardScreenState
|
||||
import com.navi.common.utils.log
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
@@ -5,14 +5,15 @@
|
||||
*
|
||||
*/
|
||||
|
||||
package com.navi.coin.repo
|
||||
package com.navi.coin.repo.pagingsource
|
||||
|
||||
import androidx.paging.PagingSource
|
||||
import androidx.paging.PagingState
|
||||
import com.navi.base.utils.orFalse
|
||||
import com.navi.coin.models.ScratchCard
|
||||
import com.navi.coin.models.model.ScratchCard
|
||||
import com.navi.coin.models.states.ScratchCardPaginatedHistoryScreenState
|
||||
import com.navi.coin.utils.Constants.SOMETHING_WENT_WRONG
|
||||
import com.navi.coin.repo.repository.ScratchCardHistoryScreenRepo
|
||||
import com.navi.coin.utils.constant.Constants.SOMETHING_WENT_WRONG
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.asStateFlow
|
||||
import kotlinx.coroutines.flow.update
|
||||
@@ -5,12 +5,12 @@
|
||||
*
|
||||
*/
|
||||
|
||||
package com.navi.coin.repo
|
||||
package com.navi.coin.repo.repository
|
||||
|
||||
import com.navi.coin.models.TransactionHistoryResponse
|
||||
import com.navi.coin.network.retrofit.RetrofitService
|
||||
import com.navi.coin.utils.Constants.SCREENS.TRANSACTION_HISTORY_CASH_SCREEN_NAME
|
||||
import com.navi.coin.utils.Constants.SCREENS.TRANSACTION_HISTORY_COINS_SCREEN_NAME
|
||||
import com.navi.coin.models.model.TransactionHistoryResponse
|
||||
import com.navi.coin.network.RetrofitService
|
||||
import com.navi.coin.utils.constant.Constants.SCREENS.TRANSACTION_HISTORY_CASH_SCREEN_NAME
|
||||
import com.navi.coin.utils.constant.Constants.SCREENS.TRANSACTION_HISTORY_COINS_SCREEN_NAME
|
||||
import com.navi.common.forge.model.ScreenDefinition
|
||||
import com.navi.common.model.ModuleNameV2
|
||||
import com.navi.common.network.models.RepoResult
|
||||
@@ -5,12 +5,12 @@
|
||||
*
|
||||
*/
|
||||
|
||||
package com.navi.coin.repo
|
||||
package com.navi.coin.repo.repository
|
||||
|
||||
import com.navi.coin.models.RedemptionRequest
|
||||
import com.navi.coin.network.retrofit.RetrofitService
|
||||
import com.navi.coin.utils.Constants.SCREENS.COINS_LOADING_SCREEN_SCREEN_NAME
|
||||
import com.navi.coin.utils.Constants.SCREENS.COINS_SCREEN_SCREEN_NAME
|
||||
import com.navi.coin.models.model.RedemptionRequest
|
||||
import com.navi.coin.network.RetrofitService
|
||||
import com.navi.coin.utils.constant.Constants.SCREENS.COINS_LOADING_SCREEN_SCREEN_NAME
|
||||
import com.navi.coin.utils.constant.Constants.SCREENS.COINS_SCREEN_SCREEN_NAME
|
||||
import com.navi.common.model.ModuleName
|
||||
import com.navi.common.model.ModuleNameV2
|
||||
import com.navi.common.utils.Constants.GZIP
|
||||
@@ -5,15 +5,14 @@
|
||||
*
|
||||
*/
|
||||
|
||||
package com.navi.coin.repo
|
||||
package com.navi.coin.repo.repository
|
||||
|
||||
import com.navi.coin.models.ScratchCardHistoryResponse
|
||||
import com.navi.coin.network.retrofit.RetrofitService
|
||||
import com.navi.coin.utils.Constants.REWARD_HISTORY_SCRATCH_CARD_SCREEN_NAME
|
||||
import com.navi.coin.models.model.ScratchCardHistoryResponse
|
||||
import com.navi.coin.network.RetrofitService
|
||||
import com.navi.coin.utils.constant.Constants.REWARD_HISTORY_SCRATCH_CARD_SCREEN_NAME
|
||||
import com.navi.common.forge.model.ScreenDefinition
|
||||
import com.navi.common.model.ModuleNameV2
|
||||
import com.navi.common.network.models.RepoResult
|
||||
import com.navi.common.network.retrofit.ResponseCallback
|
||||
import com.navi.common.utils.Constants.GZIP
|
||||
import com.navi.rr.network.retrofit.ResponseHandler
|
||||
import javax.inject.Inject
|
||||
@@ -23,7 +22,7 @@ class ScratchCardHistoryScreenRepo
|
||||
constructor(
|
||||
private val retrofitService: RetrofitService,
|
||||
private val responseHandler: ResponseHandler,
|
||||
) : ResponseCallback() {
|
||||
) {
|
||||
|
||||
suspend fun fetchScratchCardUiTronConfigs(): RepoResult<ScreenDefinition> {
|
||||
return responseHandler.handleResponse(
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.navi.coin.ui.themes
|
||||
package com.navi.coin.theme
|
||||
|
||||
import androidx.compose.ui.graphics.Color
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.navi.coin.ui.compose
|
||||
package com.navi.coin.ui.activity
|
||||
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
@@ -7,12 +7,12 @@ import androidx.navigation.NavHostController
|
||||
import com.navi.base.deeplink.DeepLinkManager
|
||||
import com.navi.base.deeplink.util.DeeplinkConstants
|
||||
import com.navi.base.model.CtaData
|
||||
import com.navi.coin.ui.activity.CoinBaseActivity
|
||||
import com.navi.coin.utils.CoinRouter
|
||||
import com.navi.coin.utils.Constants.COINS_SCREEN
|
||||
import com.navi.coin.utils.Constants.COIN_NAVIGATION_LINK
|
||||
import com.navi.coin.utils.startEnterAnimation
|
||||
import com.navi.coin.utils.startExitAnimation
|
||||
import com.navi.coin.navigator.CoinRouter
|
||||
import com.navi.coin.ui.compose.navhost.CoinDestinationNavHost
|
||||
import com.navi.coin.utils.constant.Constants.COINS_SCREEN
|
||||
import com.navi.coin.utils.constant.Constants.COIN_NAVIGATION_LINK
|
||||
import com.navi.coin.utils.ext.startEnterAnimation
|
||||
import com.navi.coin.utils.ext.startExitAnimation
|
||||
import com.navi.common.model.ModuleNameV2
|
||||
import com.navi.design.theme.NaviMaterialTheme
|
||||
import com.ramcosta.composedestinations.navigation.navigate
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.navi.coin.views
|
||||
package com.navi.coin.ui.compose.common
|
||||
|
||||
import android.content.Context
|
||||
import androidx.compose.foundation.BorderStroke
|
||||
@@ -62,19 +62,18 @@ import com.google.accompanist.pager.HorizontalPager
|
||||
import com.google.accompanist.pager.pagerTabIndicatorOffset
|
||||
import com.google.accompanist.pager.rememberPagerState
|
||||
import com.navi.coin.R
|
||||
import com.navi.coin.models.TransactionHistoryCardData
|
||||
import com.navi.coin.ui.compose.RenderCoinHistoryScreenContent
|
||||
import com.navi.coin.utils.Constants.Status.BLOCKED_STATUS
|
||||
import com.navi.coin.utils.Constants.Status.FAILED_STATUS
|
||||
import com.navi.coin.utils.Constants.Status.IN_PROGRESS_CASH_STATUS
|
||||
import com.navi.coin.utils.Constants.Status.IN_PROGRESS_GOLD_STATUS
|
||||
import com.navi.coin.utils.Constants.Status.IN_PROGRESS_STATUS
|
||||
import com.navi.coin.utils.Constants.Status.RECEIVED_STATUS
|
||||
import com.navi.coin.utils.Constants.Status.REDEEMED_TO_CASH_STATUS
|
||||
import com.navi.coin.utils.Constants.Status.REDEEMED_TO_GOLD_STATUS
|
||||
import com.navi.coin.utils.NaviCoinsAnalytics
|
||||
import com.navi.coin.utils.NoRippleIndicationSource
|
||||
import com.navi.coin.utils.scaledSp
|
||||
import com.navi.coin.models.model.TransactionHistoryCardData
|
||||
import com.navi.coin.ui.compose.screen.RenderCoinHistoryScreenContent
|
||||
import com.navi.coin.utils.analytics.NaviCoinsAnalytics
|
||||
import com.navi.coin.utils.constant.Constants.Status.BLOCKED_STATUS
|
||||
import com.navi.coin.utils.constant.Constants.Status.FAILED_STATUS
|
||||
import com.navi.coin.utils.constant.Constants.Status.IN_PROGRESS_CASH_STATUS
|
||||
import com.navi.coin.utils.constant.Constants.Status.IN_PROGRESS_GOLD_STATUS
|
||||
import com.navi.coin.utils.constant.Constants.Status.IN_PROGRESS_STATUS
|
||||
import com.navi.coin.utils.constant.Constants.Status.RECEIVED_STATUS
|
||||
import com.navi.coin.utils.constant.Constants.Status.REDEEMED_TO_CASH_STATUS
|
||||
import com.navi.coin.utils.constant.Constants.Status.REDEEMED_TO_GOLD_STATUS
|
||||
import com.navi.coin.utils.ext.scaledSp
|
||||
import com.navi.coin.vm.CoinHistoryScreenVM
|
||||
import com.navi.common.forge.model.TabConfig
|
||||
import com.navi.common.forge.model.WidgetModelDefinition
|
||||
@@ -82,6 +81,7 @@ import com.navi.design.font.FontWeightEnum
|
||||
import com.navi.design.theme.getFontWeight
|
||||
import com.navi.design.theme.ttComposeFontFamily
|
||||
import com.navi.design.utils.parseColorSafe
|
||||
import com.navi.rr.utils.NoRippleIndicationSource
|
||||
import com.navi.uitron.model.UiTronResponse
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlin.reflect.KFunction1
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.navi.coin.views
|
||||
package com.navi.coin.ui.compose.common
|
||||
|
||||
|
||||
import androidx.annotation.RawRes
|
||||
@@ -36,8 +36,8 @@ import com.airbnb.lottie.compose.LottieCompositionSpec
|
||||
import com.airbnb.lottie.compose.animateLottieCompositionAsState
|
||||
import com.airbnb.lottie.compose.rememberLottieComposition
|
||||
import com.navi.coin.R
|
||||
import com.navi.coin.utils.Constants
|
||||
import com.navi.coin.utils.SemiCircleShape
|
||||
import com.navi.coin.utils.constant.Constants
|
||||
import com.navi.coin.utils.shape.SemiCircleShape
|
||||
import com.navi.design.font.FontWeightEnum
|
||||
import com.navi.design.theme.getFontWeight
|
||||
import com.navi.design.theme.ttComposeFontFamily
|
||||
@@ -47,96 +47,6 @@ import com.navi.uitron.utils.toPx
|
||||
import kotlin.reflect.KFunction0
|
||||
import com.navi.design.R as DesignR
|
||||
|
||||
@Composable
|
||||
fun MainScreenShimmer(){
|
||||
Column(
|
||||
Modifier
|
||||
.fillMaxSize()
|
||||
.padding(start = 16.dp, top = 48.dp),
|
||||
horizontalAlignment = Alignment.CenterHorizontally,
|
||||
) {
|
||||
Row(
|
||||
Modifier.fillMaxWidth(),
|
||||
horizontalArrangement = Arrangement.SpaceBetween
|
||||
) {
|
||||
Box(modifier = Modifier
|
||||
.height(24.dp)
|
||||
.width(24.dp)
|
||||
.clip(RoundedCornerShape(4.dp))
|
||||
.setShimmerEffect(true))
|
||||
Box(modifier = Modifier
|
||||
.padding(end = 16.dp)
|
||||
.height(24.dp)
|
||||
.width(82.dp)
|
||||
.clip(RoundedCornerShape(4.dp))
|
||||
.setShimmerEffect(true))
|
||||
}
|
||||
Box(modifier = Modifier
|
||||
.padding(top = 4.dp)
|
||||
.width(130.dp)
|
||||
.height(130.dp)
|
||||
.clip(RoundedCornerShape(4.dp))
|
||||
.setShimmerEffect(true))
|
||||
Box(modifier = Modifier
|
||||
.padding(top = 32.dp)
|
||||
.height(24.dp)
|
||||
.width(234.dp)
|
||||
.clip(RoundedCornerShape(4.dp))
|
||||
.setShimmerEffect(true))
|
||||
Row(
|
||||
Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(start = 24.dp, top = 24.dp, bottom = 41.dp)
|
||||
) {
|
||||
Box(modifier = Modifier
|
||||
.height(92.dp)
|
||||
.width(284.dp)
|
||||
.clip(RoundedCornerShape(4.dp))
|
||||
.setShimmerEffect(true))
|
||||
Box(modifier = Modifier
|
||||
.height(92.dp)
|
||||
.width(284.dp)
|
||||
.padding(start = 18.dp)
|
||||
.clip(RoundedCornerShape(4.dp))
|
||||
.setShimmerEffect(true))
|
||||
}
|
||||
Box(modifier = Modifier
|
||||
.height(82.dp)
|
||||
.width(192.dp)
|
||||
.clip(RoundedCornerShape(4.dp))
|
||||
.setShimmerEffect(true))
|
||||
Row(
|
||||
Modifier
|
||||
.padding(top = 33.dp)
|
||||
.fillMaxWidth()
|
||||
) {
|
||||
Box(modifier = Modifier
|
||||
.height(220.dp)
|
||||
.width(136.dp)
|
||||
.clip(RoundedCornerShape(4.dp))
|
||||
.setShimmerEffect(true))
|
||||
Box(modifier = Modifier
|
||||
.height(220.dp)
|
||||
.width(136.dp)
|
||||
.padding(start = 16.dp)
|
||||
.clip(RoundedCornerShape(4.dp))
|
||||
.setShimmerEffect(true))
|
||||
Box(modifier = Modifier
|
||||
.height(220.dp)
|
||||
.width(136.dp)
|
||||
.padding(start = 16.dp)
|
||||
.clip(RoundedCornerShape(4.dp))
|
||||
.setShimmerEffect(true))
|
||||
}
|
||||
Box(modifier = Modifier
|
||||
.padding(top = 92.dp, bottom = 412.dp)
|
||||
.height(52.dp)
|
||||
.width(328.dp)
|
||||
.clip(RoundedCornerShape(4.dp))
|
||||
.setShimmerEffect(true))
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun MainScreenShimmerV2(){
|
||||
Column(
|
||||
@@ -333,40 +243,6 @@ fun CoinPaginationLoadingComponent() {
|
||||
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun CoinPaginationErrorComponent(retry: KFunction0<Unit>) {
|
||||
Column(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.background(
|
||||
Color(0xFFF9F9F9)
|
||||
), horizontalAlignment = Alignment.CenterHorizontally
|
||||
) {
|
||||
Row(
|
||||
modifier = Modifier.padding(16.dp, 16.dp, 16.dp, 40.dp),
|
||||
) {
|
||||
Image(
|
||||
painter = painterResource(id = DesignR.drawable.ic_info_icon_black),
|
||||
modifier = Modifier.size(16.dp),
|
||||
contentDescription = stringResource(R.string.error_icon)
|
||||
)
|
||||
|
||||
Text(
|
||||
text = stringResource(R.string.retry) ,
|
||||
modifier = Modifier
|
||||
.padding(8.dp, 0.dp, 0.dp, 0.dp)
|
||||
.clickable {
|
||||
retry()
|
||||
},
|
||||
color = Color(0xFF000000),
|
||||
fontFamily = ttComposeFontFamily,
|
||||
fontWeight = getFontWeight(FontWeightEnum.TT_REGULAR),
|
||||
fontSize = 12.sp
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun NaviCoinLottieAnimation(
|
||||
modifier: Modifier,
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.navi.coin.utils
|
||||
package com.navi.coin.ui.compose.common
|
||||
|
||||
import android.app.Activity
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
@@ -11,7 +11,7 @@ import androidx.compose.ui.graphics.Color
|
||||
import androidx.core.os.bundleOf
|
||||
import androidx.lifecycle.Lifecycle
|
||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||
import com.navi.coin.ui.compose.destinations.CoinErrorScreenDestination
|
||||
import com.navi.coin.ui.compose.screen.destinations.CoinErrorScreenDestination
|
||||
import com.navi.common.constants.SCREEN_NAME
|
||||
import com.navi.rr.common.utils.InitErrorBottomSheet
|
||||
import com.navi.rr.common.vm.RRBaseVM
|
||||
@@ -5,7 +5,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
package com.navi.coin.views
|
||||
package com.navi.coin.ui.compose.common
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import androidx.compose.foundation.ExperimentalFoundationApi
|
||||
@@ -63,32 +63,31 @@ import coil.compose.AsyncImage
|
||||
import coil.request.ImageRequest
|
||||
import com.navi.base.utils.EMPTY
|
||||
import com.navi.coin.R
|
||||
import com.navi.coin.models.ScratchCard
|
||||
import com.navi.coin.models.model.ScratchCard
|
||||
import com.navi.coin.models.states.ScratchCardPaginatedHistoryScreenState
|
||||
import com.navi.coin.models.states.ScratchCardStatus
|
||||
import com.navi.coin.ui.themes.Color_824992
|
||||
import com.navi.coin.ui.themes.Color_F9F9F9
|
||||
import com.navi.coin.ui.themes.borderAlt
|
||||
import com.navi.coin.ui.themes.brandSupportingMidGreen
|
||||
import com.navi.coin.ui.themes.ctaTertiary
|
||||
import com.navi.coin.ui.themes.midGoldColor
|
||||
import com.navi.coin.ui.themes.onSurfaceHighlight
|
||||
import com.navi.coin.ui.themes.textOrange
|
||||
import com.navi.coin.ui.themes.textPrimary
|
||||
import com.navi.coin.ui.themes.textTertiary
|
||||
import com.navi.coin.utils.Constants
|
||||
import com.navi.coin.utils.Constants.EXPIRED
|
||||
import com.navi.coin.utils.Constants.EXPIRED_SCRATCH_CARD_URL_KEY
|
||||
import com.navi.coin.utils.Constants.IN_PROGRESS
|
||||
import com.navi.coin.utils.Constants.LOCKED_SCRATCH_CARD_URL_KEY
|
||||
import com.navi.coin.utils.Constants.NAVI_COINS
|
||||
import com.navi.coin.utils.Constants.NAVI_COIN_URL_KEY
|
||||
import com.navi.coin.utils.Constants.SCRATCH_CARD_EXPIRED_BOTTOM_SHEET
|
||||
import com.navi.coin.utils.Constants.SCRATCH_CARD_IN_PROGRESS_BOTTOM_SHEET
|
||||
import com.navi.coin.utils.Constants.SCRATCH_CARD_RECEIVED_BOTTOM_SHEET
|
||||
import com.navi.coin.utils.NoRippleIndicationSource
|
||||
import com.navi.coin.theme.Color_824992
|
||||
import com.navi.coin.theme.Color_F9F9F9
|
||||
import com.navi.coin.theme.borderAlt
|
||||
import com.navi.coin.theme.brandSupportingMidGreen
|
||||
import com.navi.coin.theme.ctaTertiary
|
||||
import com.navi.coin.theme.midGoldColor
|
||||
import com.navi.coin.theme.onSurfaceHighlight
|
||||
import com.navi.coin.theme.textOrange
|
||||
import com.navi.coin.theme.textPrimary
|
||||
import com.navi.coin.theme.textTertiary
|
||||
import com.navi.coin.utils.constant.Constants
|
||||
import com.navi.coin.utils.constant.Constants.EXPIRED
|
||||
import com.navi.coin.utils.constant.Constants.EXPIRED_SCRATCH_CARD_URL_KEY
|
||||
import com.navi.coin.utils.constant.Constants.IN_PROGRESS
|
||||
import com.navi.coin.utils.constant.Constants.LOCKED_SCRATCH_CARD_URL_KEY
|
||||
import com.navi.coin.utils.constant.Constants.NAVI_COINS
|
||||
import com.navi.coin.utils.constant.Constants.NAVI_COIN_URL_KEY
|
||||
import com.navi.coin.utils.constant.Constants.SCRATCH_CARD_EXPIRED_BOTTOM_SHEET
|
||||
import com.navi.coin.utils.constant.Constants.SCRATCH_CARD_IN_PROGRESS_BOTTOM_SHEET
|
||||
import com.navi.coin.utils.constant.Constants.SCRATCH_CARD_RECEIVED_BOTTOM_SHEET
|
||||
import com.navi.coin.utils.ext.scaledSp
|
||||
import com.navi.coin.utils.formatDuration
|
||||
import com.navi.coin.utils.scaledSp
|
||||
import com.navi.coin.vm.ScratchCardScreenVM
|
||||
import com.navi.common.forge.model.WidgetModelDefinition
|
||||
import com.navi.design.font.FontWeightEnum
|
||||
@@ -97,6 +96,7 @@ import com.navi.design.theme.ttComposeFontFamily
|
||||
import com.navi.rr.utils.EventConstants.BOTTOM_SHEET_TYPE
|
||||
import com.navi.rr.utils.EventConstants.SCRATCH_CARD_HISTORY_BOTTOM_SHEET_VISIBLE_EVENT
|
||||
import com.navi.rr.utils.NaviRRAnalytics
|
||||
import com.navi.rr.utils.NoRippleIndicationSource
|
||||
import com.navi.rr.widgetFactory.WidgetRenderer
|
||||
import com.navi.uitron.model.UiTronResponse
|
||||
import java.util.Locale
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.navi.coin.ui.compose
|
||||
package com.navi.coin.ui.compose.navhost
|
||||
|
||||
import androidx.compose.animation.AnimatedContentTransitionScope
|
||||
import androidx.compose.animation.ExperimentalAnimationApi
|
||||
@@ -6,9 +6,11 @@ import androidx.compose.animation.core.tween
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.navigation.compose.rememberNavController
|
||||
import com.google.accompanist.navigation.material.ExperimentalMaterialNavigationApi
|
||||
import com.navi.coin.navigator.CoinNavigationActions
|
||||
import com.navi.coin.ui.activity.CoinBaseActivity
|
||||
import com.navi.coin.ui.compose.destinations.CoinHistoryScreenDestination
|
||||
import com.navi.coin.utils.CoinNavigationActions
|
||||
import com.navi.coin.ui.compose.screen.CoinHistoryScreen
|
||||
import com.navi.coin.ui.compose.screen.NavGraphs
|
||||
import com.navi.coin.ui.compose.screen.destinations.CoinHistoryScreenDestination
|
||||
import com.navi.naviwidgets.utils.FORWARD_SLASH
|
||||
import com.ramcosta.composedestinations.DestinationsNavHost
|
||||
import com.ramcosta.composedestinations.animations.defaults.RootNavGraphDefaultAnimations
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.navi.coin.ui.compose
|
||||
package com.navi.coin.ui.compose.screen
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.compose.runtime.Composable
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.navi.coin.ui.compose
|
||||
package com.navi.coin.ui.compose.screen
|
||||
|
||||
import android.app.Activity
|
||||
import androidx.activity.compose.BackHandler
|
||||
@@ -50,20 +50,20 @@ import com.navi.base.model.CtaData
|
||||
import com.navi.base.model.LineItem
|
||||
import com.navi.base.utils.EMPTY
|
||||
import com.navi.coin.R
|
||||
import com.navi.coin.models.TransactionHistoryCardData
|
||||
import com.navi.coin.utils.Constants.Status.FAILED_STATUS
|
||||
import com.navi.coin.utils.Constants.Status.REDEEMED_TO_CASH_STATUS
|
||||
import com.navi.coin.utils.Constants.Status.REDEEMED_TO_GOLD_STATUS
|
||||
import com.navi.coin.utils.Init
|
||||
import com.navi.coin.utils.NaviCoinsAnalytics
|
||||
import com.navi.coin.utils.NaviCoinsAnalytics.Companion.REWARDS_HISTORY_TRANSACTION_DETAIL_BOTTOMSHEET_APPEARS
|
||||
import com.navi.coin.utils.NaviCoinsAnalytics.Companion.REWARDS_HISTORY_TRANSACTION_DETAIL_BOTTOMSHEET_DISAPPEARS
|
||||
import com.navi.coin.utils.NaviCoinsAnalytics.Companion.naviCoinsAnalytics
|
||||
import com.navi.coin.views.TabLayout
|
||||
import com.navi.coin.views.TransactionHistoryScreenShimmer
|
||||
import com.navi.coin.models.model.TransactionHistoryCardData
|
||||
import com.navi.coin.utils.constant.Constants.Status.FAILED_STATUS
|
||||
import com.navi.coin.utils.constant.Constants.Status.REDEEMED_TO_CASH_STATUS
|
||||
import com.navi.coin.utils.constant.Constants.Status.REDEEMED_TO_GOLD_STATUS
|
||||
import com.navi.coin.ui.compose.common.Init
|
||||
import com.navi.coin.utils.analytics.NaviCoinsAnalytics
|
||||
import com.navi.coin.utils.analytics.NaviCoinsAnalytics.Companion.REWARDS_HISTORY_TRANSACTION_DETAIL_BOTTOMSHEET_APPEARS
|
||||
import com.navi.coin.utils.analytics.NaviCoinsAnalytics.Companion.REWARDS_HISTORY_TRANSACTION_DETAIL_BOTTOMSHEET_DISAPPEARS
|
||||
import com.navi.coin.utils.analytics.NaviCoinsAnalytics.Companion.naviCoinsAnalytics
|
||||
import com.navi.coin.ui.compose.common.TabLayout
|
||||
import com.navi.coin.ui.compose.common.TransactionHistoryScreenShimmer
|
||||
import com.navi.coin.vm.CoinHistoryScreenState
|
||||
import com.navi.coin.vm.CoinHistoryScreenVM
|
||||
import com.navi.coin.widgetFactory.CoinWidgetRenderer
|
||||
import com.navi.coin.ui.compose.widgetfactory.CoinWidgetRenderer
|
||||
import com.navi.common.constants.CHAT_BOT_SCREEN_NAME
|
||||
import com.navi.common.forge.model.TabConfig
|
||||
import com.navi.common.forge.model.WidgetModelDefinition
|
||||
@@ -75,7 +75,6 @@ import com.navi.naviwidgets.models.RewardType
|
||||
import com.navi.rr.common.constants.COIN_HISTORY_SCREEN
|
||||
import com.navi.rr.common.constants.PROFILE_RR_SCREEN
|
||||
import com.navi.rr.utils.clickable
|
||||
import com.navi.rr.common.constants.COIN_HISTORY_SCREEN
|
||||
import com.navi.uitron.model.UiTronResponse
|
||||
import com.navi.uitron.model.data.SpannableTextData
|
||||
import com.navi.uitron.model.data.TextData
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.navi.coin.ui.compose
|
||||
package com.navi.coin.ui.compose.screen
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.activity.compose.BackHandler
|
||||
@@ -65,26 +65,26 @@ import com.navi.base.model.LineItem
|
||||
import com.navi.base.utils.EMPTY
|
||||
import com.navi.base.utils.orFalse
|
||||
import com.navi.coin.R
|
||||
import com.navi.coin.models.CoinHomeScreenState
|
||||
import com.navi.coin.models.states.ApiActionState
|
||||
import com.navi.coin.ui.activity.CoinBaseActivity
|
||||
import com.navi.coin.utils.CoinRouter.REDEMPTION_STATUS_SCREEN_CTA_URL
|
||||
import com.navi.coin.utils.Constants
|
||||
import com.navi.coin.utils.Constants.BACKGROUND_IMAGE_HEIGHT_KEY
|
||||
import com.navi.coin.utils.Constants.HERO_PLACEHOLDER_PROPERTY_KEY
|
||||
import com.navi.coin.utils.Constants.SCREEN_CONTENT
|
||||
import com.navi.coin.utils.Constants.SHOW_CURVE_KEY
|
||||
import com.navi.coin.utils.Init
|
||||
import com.navi.coin.utils.NaviCoinsAnalytics
|
||||
import com.navi.coin.utils.NaviCoinsAnalytics.Companion.REWARDS_NAVI_COINS_INFO_PAGE_BACK_ARROW_CLICK
|
||||
import com.navi.coin.utils.NoRippleIndicationSource
|
||||
import com.navi.coin.views.MainScreenShimmerV2
|
||||
import com.navi.coin.models.states.CoinHomeScreenState
|
||||
import com.navi.coin.navigator.CoinRouter.REDEMPTION_STATUS_SCREEN_CTA_URL
|
||||
import com.navi.coin.ui.compose.common.Init
|
||||
import com.navi.coin.ui.compose.common.MainScreenShimmerV2
|
||||
import com.navi.coin.utils.analytics.NaviCoinsAnalytics
|
||||
import com.navi.coin.utils.analytics.NaviCoinsAnalytics.Companion.REWARDS_NAVI_COINS_INFO_PAGE_BACK_ARROW_CLICK
|
||||
import com.navi.coin.utils.constant.Constants
|
||||
import com.navi.coin.utils.constant.Constants.BACKGROUND_IMAGE_HEIGHT_KEY
|
||||
import com.navi.coin.utils.constant.Constants.HERO_PLACEHOLDER_PROPERTY_KEY
|
||||
import com.navi.coin.utils.constant.Constants.SCREEN_CONTENT
|
||||
import com.navi.coin.utils.constant.Constants.SHOW_CURVE_KEY
|
||||
import com.navi.coin.vm.CoinHomeScreenVM
|
||||
import com.navi.common.uitron.model.action.CtaAction
|
||||
import com.navi.rr.common.actions.InitActionHandler
|
||||
import com.navi.rr.common.constants.COIN_HOME_SCREEN
|
||||
import com.navi.rr.utils.Constants.NULL_STRING
|
||||
import com.navi.rr.utils.InitWidgetActions
|
||||
import com.navi.rr.utils.NoRippleIndicationSource
|
||||
import com.navi.rr.utils.brushType
|
||||
import com.navi.rr.utils.getGsonBuilders
|
||||
import com.navi.rr.utils.toJson
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.navi.coin.ui.compose
|
||||
package com.navi.coin.ui.compose.screen
|
||||
|
||||
import android.app.Activity
|
||||
import android.os.Bundle
|
||||
@@ -15,8 +15,8 @@ import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.core.os.bundleOf
|
||||
import androidx.hilt.navigation.compose.hiltViewModel
|
||||
import com.navi.base.deeplink.DeepLinkManager
|
||||
import com.navi.coin.utils.Constants.SCREENS.COINS_LOADING_SCREEN_SCREEN_NAME
|
||||
import com.navi.coin.utils.Constants.SCREEN_CONTENT
|
||||
import com.navi.coin.utils.constant.Constants.SCREENS.COINS_LOADING_SCREEN_SCREEN_NAME
|
||||
import com.navi.coin.utils.constant.Constants.SCREEN_CONTENT
|
||||
import com.navi.common.forge.model.ScreenDefinition
|
||||
import com.navi.common.uitron.model.action.CtaAction
|
||||
import com.navi.rr.common.utils.Init
|
||||
@@ -5,7 +5,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
package com.navi.coin.ui.compose
|
||||
package com.navi.coin.ui.compose.screen
|
||||
|
||||
import android.app.Activity
|
||||
import androidx.activity.compose.BackHandler
|
||||
@@ -58,25 +58,25 @@ import com.navi.base.deeplink.util.DeeplinkConstants.CHAT_ACTIVITY
|
||||
import com.navi.base.model.CtaData
|
||||
import com.navi.base.model.LineItem
|
||||
import com.navi.coin.R
|
||||
import com.navi.coin.models.ScratchCard
|
||||
import com.navi.coin.models.model.ScratchCard
|
||||
import com.navi.coin.models.model.toFlatMap
|
||||
import com.navi.coin.models.states.ScratchCardHistoryScreenState
|
||||
import com.navi.coin.models.toFlatMap
|
||||
import com.navi.coin.theme.Color_601978
|
||||
import com.navi.coin.ui.activity.CoinBaseActivity
|
||||
import com.navi.coin.ui.themes.Color_601978
|
||||
import com.navi.coin.ui.themes.Color_F9F9F9
|
||||
import com.navi.coin.utils.Constants
|
||||
import com.navi.coin.utils.Constants.N
|
||||
import com.navi.coin.utils.Constants.PREVIOUS_BALANCE
|
||||
import com.navi.coin.utils.Constants.REWARD_EARNED
|
||||
import com.navi.coin.utils.Constants.REWARD_HISTORY_SCRATCH_CARD_SCREEN_NAME
|
||||
import com.navi.coin.utils.Constants.RR_BOTTOM_SHEET
|
||||
import com.navi.coin.utils.Constants.SCREEN_NAME
|
||||
import com.navi.coin.utils.Constants.TRANSACTION_ID
|
||||
import com.navi.coin.utils.Constants.Y
|
||||
import com.navi.coin.utils.Init
|
||||
import com.navi.coin.utils.NaviCoinsAnalytics
|
||||
import com.navi.coin.utils.SemiCircleShape
|
||||
import com.navi.coin.views.ScratchCardListView
|
||||
import com.navi.coin.theme.Color_F9F9F9
|
||||
import com.navi.coin.ui.compose.common.Init
|
||||
import com.navi.coin.ui.compose.common.ScratchCardListView
|
||||
import com.navi.coin.utils.analytics.NaviCoinsAnalytics
|
||||
import com.navi.coin.utils.constant.Constants
|
||||
import com.navi.coin.utils.constant.Constants.N
|
||||
import com.navi.coin.utils.constant.Constants.PREVIOUS_BALANCE
|
||||
import com.navi.coin.utils.constant.Constants.REWARD_EARNED
|
||||
import com.navi.coin.utils.constant.Constants.REWARD_HISTORY_SCRATCH_CARD_SCREEN_NAME
|
||||
import com.navi.coin.utils.constant.Constants.RR_BOTTOM_SHEET
|
||||
import com.navi.coin.utils.constant.Constants.SCREEN_NAME
|
||||
import com.navi.coin.utils.constant.Constants.TRANSACTION_ID
|
||||
import com.navi.coin.utils.constant.Constants.Y
|
||||
import com.navi.coin.utils.shape.SemiCircleShape
|
||||
import com.navi.coin.vm.ScratchCardScreenVM
|
||||
import com.navi.common.constants.CHAT_BOT_SCREEN_NAME
|
||||
import com.navi.common.forge.model.ScreenDefinition
|
||||
@@ -1,8 +1,7 @@
|
||||
package com.navi.coin.widgetFactory
|
||||
package com.navi.coin.ui.compose.widgetfactory
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import com.navi.coin.vm.CoinHistoryScreenVM
|
||||
import com.navi.coin.vm.CoinHomeScreenVM
|
||||
import com.navi.common.forge.model.WidgetModelDefinition
|
||||
import com.navi.common.forge.model.WidgetTypes
|
||||
import com.navi.uitron.model.UiTronResponse
|
||||
@@ -23,25 +22,6 @@ fun CoinWidgetRenderer(
|
||||
.Render(composeViews = widget.widgetData?.parentComposeView.orEmpty())
|
||||
}
|
||||
|
||||
else -> Unit
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun CoinWidgetRenderer(
|
||||
widget: WidgetModelDefinition<UiTronResponse>?,
|
||||
viewModel: CoinHomeScreenVM
|
||||
) {
|
||||
if (widget == null) return
|
||||
return when (widget.widgetType) {
|
||||
WidgetTypes.UI_TRON_WIDGET.name -> {
|
||||
UiTronRenderer(
|
||||
dataMap = widget.widgetData?.data,
|
||||
uiTronViewModel = viewModel,
|
||||
)
|
||||
.Render(composeViews = widget.widgetData?.parentComposeView.orEmpty())
|
||||
}
|
||||
|
||||
else -> Unit
|
||||
}
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
package com.navi.coin.utils
|
||||
|
||||
import android.app.Activity
|
||||
import com.navi.common.R as CommonR
|
||||
|
||||
fun Activity.startEnterAnimation() {
|
||||
this.overridePendingTransition(
|
||||
CommonR.anim.parallax_slide_in_right,
|
||||
CommonR.anim.parallax_slide_out_left)
|
||||
}
|
||||
|
||||
fun Activity.startExitAnimation() {
|
||||
this.overridePendingTransition(
|
||||
CommonR.anim.parallax_slide_in_left,
|
||||
CommonR.anim.parallax_slide_out_right
|
||||
)
|
||||
}
|
||||
@@ -1,60 +1,34 @@
|
||||
package com.navi.coin.utils
|
||||
|
||||
import android.app.Activity
|
||||
import androidx.compose.foundation.interaction.Interaction
|
||||
import androidx.compose.foundation.interaction.MutableInteractionSource
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.geometry.Rect
|
||||
import androidx.compose.ui.geometry.Size
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.Outline
|
||||
import androidx.compose.ui.graphics.Path
|
||||
import androidx.compose.ui.graphics.Shape
|
||||
import androidx.compose.ui.platform.LocalDensity
|
||||
import androidx.compose.ui.text.AnnotatedString
|
||||
import androidx.compose.ui.text.SpanStyle
|
||||
import androidx.compose.ui.text.buildAnnotatedString
|
||||
import androidx.compose.ui.unit.Density
|
||||
import androidx.compose.ui.unit.LayoutDirection
|
||||
import androidx.compose.ui.unit.TextUnit
|
||||
import androidx.compose.ui.unit.sp
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.view.WindowInsetsControllerCompat
|
||||
import coil.imageLoader
|
||||
import coil.request.CachePolicy
|
||||
import coil.request.ImageRequest
|
||||
import com.google.gson.Gson
|
||||
import com.google.gson.GsonBuilder
|
||||
import com.navi.base.utils.isNull
|
||||
import com.navi.coin.ui.activity.CoinBaseActivity
|
||||
import com.navi.coin.utils.ext.filterEntries
|
||||
import com.navi.common.CommonLibManager
|
||||
import com.navi.common.forge.model.ScreenStructure
|
||||
import com.navi.common.utils.registerUiTronDeSerializers
|
||||
import com.navi.design.theme.getFontFamily
|
||||
import com.navi.design.theme.getFontWeight
|
||||
import com.navi.naviwidgets.models.NaviTextComponent
|
||||
import com.navi.rr.common.activity.NavHostControllerOwner
|
||||
import com.navi.rr.navigation.NavArgs
|
||||
import com.navi.rr.navigation.NavigationAction
|
||||
import com.navi.rr.utils.getGsonBuilders
|
||||
import com.navi.uitron.utils.hexToComposeColor
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.emptyFlow
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.json.JSONObject
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
|
||||
fun Activity.setStatusBarColor(color: Int, isLight: Boolean = false) {
|
||||
val window = window
|
||||
val decorView = window.decorView
|
||||
val wic = WindowInsetsControllerCompat(window, decorView)
|
||||
wic.isAppearanceLightStatusBars = isLight
|
||||
window.statusBarColor = ContextCompat.getColor(this, color)
|
||||
}
|
||||
|
||||
fun setSpannableString(
|
||||
textWithSpan: NaviTextComponent
|
||||
textWithSpan: NaviTextComponent,
|
||||
): AnnotatedString? {
|
||||
if (textWithSpan.text == null) {
|
||||
return null
|
||||
@@ -80,62 +54,6 @@ fun setSpannableString(
|
||||
}
|
||||
return annotatedString
|
||||
}
|
||||
class SemiCircleShape(private val height: Float) : Shape {
|
||||
override fun createOutline(
|
||||
size: Size,
|
||||
layoutDirection: LayoutDirection,
|
||||
density: Density,
|
||||
): Outline {
|
||||
return Outline.Generic(
|
||||
path = drawSemiCircle(size, height)
|
||||
)
|
||||
}
|
||||
|
||||
private fun drawSemiCircle(size: Size, height:Float): Path {
|
||||
return Path().apply {
|
||||
reset()
|
||||
arcTo(
|
||||
rect = Rect(
|
||||
left = 0f,
|
||||
top = -height ,
|
||||
right = size.width,
|
||||
bottom = height
|
||||
),
|
||||
startAngleDegrees = 180.0f,
|
||||
sweepAngleDegrees = -180.0f,
|
||||
forceMoveTo = false
|
||||
)
|
||||
lineTo(size.width, 0f)
|
||||
lineTo(size.width, size.height)
|
||||
lineTo(0f, size.height)
|
||||
close()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun Int.scaledSp(): TextUnit {
|
||||
val value: Int = this
|
||||
return with(LocalDensity.current) {
|
||||
val fontScale = this.fontScale
|
||||
val textSize = value / fontScale
|
||||
textSize.sp
|
||||
}
|
||||
}
|
||||
val Int.scaledSp: TextUnit
|
||||
@Composable get() = scaledSp()
|
||||
class NoRippleIndicationSource : MutableInteractionSource {
|
||||
|
||||
override val interactions: Flow<Interaction> = emptyFlow()
|
||||
|
||||
override suspend fun emit(interaction: Interaction) {}
|
||||
|
||||
override fun tryEmit(interaction: Interaction) = true
|
||||
|
||||
}
|
||||
fun getSerializerGsonBuilders(): Gson = GsonBuilder()
|
||||
.registerUiTronDeSerializers()
|
||||
.create()
|
||||
|
||||
suspend fun cacheCoinHomeImages(screenStructure: ScreenStructure?) =
|
||||
withContext(Dispatchers.IO) {
|
||||
@@ -152,7 +70,7 @@ suspend fun cacheCoinHomeImages(screenStructure: ScreenStructure?) =
|
||||
}
|
||||
screenStructure.content?.widgets?.forEach { uiTronResponse ->
|
||||
uiTronResponse?.let {
|
||||
val jsonObj = JSONObject(getSerializerGsonBuilders().toJson(uiTronResponse))
|
||||
val jsonObj = JSONObject(getGsonBuilders().toJson(uiTronResponse))
|
||||
jsonObj
|
||||
.filterEntries { it.first == "iconUrl" && it.second.isNull().not() }
|
||||
.forEach { context.imageLoader.enqueue(request.data(it.second).build()) }
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
/*
|
||||
*
|
||||
* * Copyright © 2024 by Navi Technologies Limited
|
||||
* * All rights reserved. Strictly confidential
|
||||
*
|
||||
*/
|
||||
|
||||
package com.navi.coin.utils
|
||||
|
||||
import java.io.Closeable
|
||||
|
||||
interface ICountDownHelper : Closeable {
|
||||
fun startTimer(
|
||||
timerId: String,
|
||||
millisInFuture: Long,
|
||||
onTick: (Long) -> Unit,
|
||||
onFinish: () -> Unit
|
||||
)
|
||||
|
||||
fun cancelAllTimers()
|
||||
|
||||
fun cancelTimer(timerId: String)
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.navi.coin.utils
|
||||
package com.navi.coin.utils.analytics
|
||||
|
||||
import com.navi.analytics.utils.NaviTrackEvent
|
||||
import com.navi.base.sharedpref.CommonPrefConstants.USER_EXTERNAL_ID
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.navi.coin.utils
|
||||
package com.navi.coin.utils.constant
|
||||
|
||||
object Constants {
|
||||
|
||||
@@ -26,18 +26,12 @@ object Constants {
|
||||
const val EXPIRED_SCRATCH_CARD_URL_KEY = "expiredScratchCardUrl"
|
||||
const val NAVI_COIN_URL_KEY = "naviCoinsUrl"
|
||||
const val RR_BOTTOM_SHEET = "RR_BOTTOM_SHEET"
|
||||
const val CURRENT_BALANCE = "currentBalance"
|
||||
const val PREVIOUS_BALANCE = "previousBalance"
|
||||
const val TRANSACTION_ID = "transaction_id"
|
||||
const val SCREEN_NAME = "screen_name"
|
||||
const val REWARD_EARNED= "reward_earned"
|
||||
const val Y="Y"
|
||||
const val N="N"
|
||||
const val PAYMENT_SUMMARY_SCREEN = "PAYMENT_SUMMARY_SCREEN"
|
||||
const val TEMPLATE_NAME = "templateName"
|
||||
const val REWARD = "REWARD"
|
||||
const val NO_REWARD = "NO_REWARD"
|
||||
const val SCRATCH_STARTED="scratchStarted"
|
||||
const val BACK="BACK"
|
||||
const val SCREEN_CONTENT = "screen_content"
|
||||
|
||||
@@ -70,11 +64,9 @@ object Constants {
|
||||
const val COINS_LOADING_SCREEN_SCREEN_NAME = "COINS_HOME_LOADING_SCREEN_M2"
|
||||
}
|
||||
|
||||
object ErrorConfig {
|
||||
const val ERROR_TITLE = "Something went wrong!"
|
||||
const val ERROR_SUBTITLE = "Oops! Something isn’t working correctly."
|
||||
const val ERROR_BUTTON_TEXT = "Reload"
|
||||
}
|
||||
|
||||
const val CLOSE = "close"
|
||||
|
||||
object ApiConstants {
|
||||
const val API_CONNECT_TIMEOUT_VALUE = 20L
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.navi.coin.utils.ext
|
||||
|
||||
import android.app.Activity
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.view.WindowInsetsControllerCompat
|
||||
import com.navi.common.R
|
||||
|
||||
|
||||
fun Activity.startEnterAnimation() {
|
||||
this.overridePendingTransition(
|
||||
R.anim.parallax_slide_in_right,
|
||||
R.anim.parallax_slide_out_left
|
||||
)
|
||||
}
|
||||
|
||||
fun Activity.startExitAnimation() {
|
||||
this.overridePendingTransition(
|
||||
R.anim.parallax_slide_in_left,
|
||||
R.anim.parallax_slide_out_right
|
||||
)
|
||||
}
|
||||
|
||||
fun Activity.setStatusBarColor(color: Int, isLight: Boolean = false) {
|
||||
val window = window
|
||||
val decorView = window.decorView
|
||||
val wic = WindowInsetsControllerCompat(window, decorView)
|
||||
wic.isAppearanceLightStatusBars = isLight
|
||||
window.statusBarColor = ContextCompat.getColor(this, color)
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.navi.coin.utils
|
||||
package com.navi.coin.utils.ext
|
||||
|
||||
import com.navi.common.utils.EMPTY
|
||||
import com.navi.common.utils.log
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.navi.coin.utils.ext
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.platform.LocalDensity
|
||||
import androidx.compose.ui.unit.TextUnit
|
||||
import androidx.compose.ui.unit.sp
|
||||
|
||||
@Composable
|
||||
fun Int.scaledSp(): TextUnit {
|
||||
val value: Int = this
|
||||
return with(LocalDensity.current) {
|
||||
val fontScale = this.fontScale
|
||||
val textSize = value / fontScale
|
||||
textSize.sp
|
||||
}
|
||||
}
|
||||
@@ -5,15 +5,31 @@
|
||||
*
|
||||
*/
|
||||
|
||||
package com.navi.coin.utils
|
||||
package com.navi.coin.utils.facade
|
||||
|
||||
import android.os.CountDownTimer
|
||||
import java.io.Closeable
|
||||
import javax.inject.Inject
|
||||
|
||||
/**
|
||||
* Please call close method manually when you are done with the helper
|
||||
**/
|
||||
|
||||
|
||||
interface ICountDownHelper : Closeable {
|
||||
fun startTimer(
|
||||
timerId: String,
|
||||
millisInFuture: Long,
|
||||
onTick: (Long) -> Unit,
|
||||
onFinish: () -> Unit
|
||||
)
|
||||
|
||||
fun cancelAllTimers()
|
||||
|
||||
fun cancelTimer(timerId: String)
|
||||
}
|
||||
|
||||
|
||||
class CountDownFacade @Inject constructor() : ICountDownHelper {
|
||||
|
||||
private var idToTimer = mutableMapOf<String, CountDownTimer>()
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.navi.coin.utils
|
||||
package com.navi.coin.utils.mock
|
||||
|
||||
import com.google.gson.JsonObject
|
||||
import com.google.gson.JsonParser
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.navi.coin.utils.shape
|
||||
|
||||
import androidx.compose.ui.geometry.Rect
|
||||
import androidx.compose.ui.geometry.Size
|
||||
import androidx.compose.ui.graphics.Outline
|
||||
import androidx.compose.ui.graphics.Path
|
||||
import androidx.compose.ui.graphics.Shape
|
||||
import androidx.compose.ui.unit.Density
|
||||
import androidx.compose.ui.unit.LayoutDirection
|
||||
|
||||
class SemiCircleShape(private val height: Float) : Shape {
|
||||
override fun createOutline(
|
||||
size: Size,
|
||||
layoutDirection: LayoutDirection,
|
||||
density: Density,
|
||||
): Outline {
|
||||
return Outline.Generic(
|
||||
path = drawSemiCircle(size, height)
|
||||
)
|
||||
}
|
||||
|
||||
private fun drawSemiCircle(size: Size, height:Float): Path {
|
||||
return Path().apply {
|
||||
reset()
|
||||
arcTo(
|
||||
rect = Rect(
|
||||
left = 0f,
|
||||
top = -height ,
|
||||
right = size.width,
|
||||
bottom = height
|
||||
),
|
||||
startAngleDegrees = 180.0f,
|
||||
sweepAngleDegrees = -180.0f,
|
||||
forceMoveTo = false
|
||||
)
|
||||
lineTo(size.width, 0f)
|
||||
lineTo(size.width, size.height)
|
||||
lineTo(0f, size.height)
|
||||
close()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6,13 +6,13 @@ import androidx.paging.PagingConfig
|
||||
import androidx.paging.cachedIn
|
||||
import com.navi.base.cache.model.NaviCacheEntity
|
||||
import com.navi.base.cache.repository.NaviCacheRepositoryImpl
|
||||
import com.navi.coin.repo.CashHistoryListSource
|
||||
import com.navi.coin.repo.CoinHistoryListSource
|
||||
import com.navi.coin.repo.CoinHistoryScreenRepo
|
||||
import com.navi.coin.repo.CoinHomeScreenRepo
|
||||
import com.navi.coin.utils.CoinNavigationActions
|
||||
import com.navi.coin.utils.CoinRouter
|
||||
import com.navi.coin.utils.Constants.CLOSE
|
||||
import com.navi.coin.repo.pagingsource.CashHistoryListSource
|
||||
import com.navi.coin.repo.pagingsource.CoinHistoryListSource
|
||||
import com.navi.coin.repo.repository.CoinHistoryScreenRepo
|
||||
import com.navi.coin.repo.repository.CoinHomeScreenRepo
|
||||
import com.navi.coin.navigator.CoinNavigationActions
|
||||
import com.navi.coin.navigator.CoinRouter
|
||||
import com.navi.coin.utils.constant.Constants.CLOSE
|
||||
import com.navi.coin.utils.cacheCoinHomeImages
|
||||
import com.navi.common.CommonLibManager
|
||||
import com.navi.common.constants.DBCacheConstants.COIN_HOME_SCREEN_CACHE_KEY
|
||||
|
||||
@@ -3,24 +3,24 @@ package com.navi.coin.vm
|
||||
import com.navi.base.cache.model.NaviCacheAltSourceEntity
|
||||
import com.navi.base.cache.model.NaviCacheEntity
|
||||
import com.navi.base.cache.repository.NaviCacheRepositoryImpl
|
||||
import com.navi.coin.models.CoinHomeScreenState
|
||||
import com.navi.coin.models.RedemptionRequest
|
||||
import com.navi.coin.models.RedemptionResponse
|
||||
import com.navi.coin.models.RedemptionResponse.Companion.NAVI_CASH
|
||||
import com.navi.coin.models.RedemptionResponse.Companion.NAVI_COINS
|
||||
import com.navi.coin.models.RedemptionStatusResponse
|
||||
import com.navi.coin.models.states.CoinHomeScreenState
|
||||
import com.navi.coin.models.model.RedemptionRequest
|
||||
import com.navi.coin.models.model.RedemptionResponse
|
||||
import com.navi.coin.models.model.RedemptionResponse.Companion.NAVI_CASH
|
||||
import com.navi.coin.models.model.RedemptionResponse.Companion.NAVI_COINS
|
||||
import com.navi.coin.models.model.RedemptionStatusResponse
|
||||
import com.navi.coin.models.states.ApiActionState
|
||||
import com.navi.coin.repo.CoinHistoryScreenRepo
|
||||
import com.navi.coin.repo.CoinHomeScreenRepo
|
||||
import com.navi.coin.utils.CoinNavigationActions
|
||||
import com.navi.coin.utils.CoinRouter
|
||||
import com.navi.coin.utils.NaviCoinsAnalytics
|
||||
import com.navi.coin.utils.NaviCoinsAnalytics.Companion.DEV_REDEEM_COIN_FAILURE_EVENT
|
||||
import com.navi.coin.utils.NaviCoinsAnalytics.Companion.DEV_REDEEM_COIN_INITIATED_EVENT
|
||||
import com.navi.coin.utils.NaviCoinsAnalytics.Companion.DEV_REDEEM_COIN_SUCCESS_EVENT
|
||||
import com.navi.coin.utils.NaviCoinsAnalytics.Companion.DEV_VALIDATE_UPI_ID_EVENT
|
||||
import com.navi.coin.utils.NaviCoinsAnalytics.Companion.DEV_VALIDATE_UPI_ID_FAILURE_EVENT
|
||||
import com.navi.coin.utils.NaviCoinsAnalytics.Companion.DEV_VALIDATE_UPI_ID_SUCCESS_EVENT
|
||||
import com.navi.coin.repo.repository.CoinHistoryScreenRepo
|
||||
import com.navi.coin.repo.repository.CoinHomeScreenRepo
|
||||
import com.navi.coin.navigator.CoinNavigationActions
|
||||
import com.navi.coin.navigator.CoinRouter
|
||||
import com.navi.coin.utils.analytics.NaviCoinsAnalytics
|
||||
import com.navi.coin.utils.analytics.NaviCoinsAnalytics.Companion.DEV_REDEEM_COIN_FAILURE_EVENT
|
||||
import com.navi.coin.utils.analytics.NaviCoinsAnalytics.Companion.DEV_REDEEM_COIN_INITIATED_EVENT
|
||||
import com.navi.coin.utils.analytics.NaviCoinsAnalytics.Companion.DEV_REDEEM_COIN_SUCCESS_EVENT
|
||||
import com.navi.coin.utils.analytics.NaviCoinsAnalytics.Companion.DEV_VALIDATE_UPI_ID_EVENT
|
||||
import com.navi.coin.utils.analytics.NaviCoinsAnalytics.Companion.DEV_VALIDATE_UPI_ID_FAILURE_EVENT
|
||||
import com.navi.coin.utils.analytics.NaviCoinsAnalytics.Companion.DEV_VALIDATE_UPI_ID_SUCCESS_EVENT
|
||||
import com.navi.coin.utils.cacheCoinHomeImages
|
||||
import com.navi.common.CommonLibManager
|
||||
import com.navi.common.constants.DBCacheConstants.COIN_HOME_SCREEN_CACHE_KEY
|
||||
|
||||
@@ -13,16 +13,16 @@ import androidx.paging.PagingConfig
|
||||
import androidx.paging.cachedIn
|
||||
import androidx.paging.compose.LazyPagingItems
|
||||
import com.navi.base.utils.orZero
|
||||
import com.navi.coin.models.ScratchCard
|
||||
import com.navi.coin.di.qualifiers.CountDownHelperQualifier
|
||||
import com.navi.coin.models.model.ScratchCard
|
||||
import com.navi.coin.models.states.ScratchCardHistoryScreenState
|
||||
import com.navi.coin.models.states.ScratchCardStatus
|
||||
import com.navi.coin.network.di.CountDownHelperQualifier
|
||||
import com.navi.coin.repo.ScratchCardHistoryListSource
|
||||
import com.navi.coin.repo.ScratchCardHistoryScreenRepo
|
||||
import com.navi.coin.utils.CoinNavigationActions
|
||||
import com.navi.coin.utils.CoinRouter
|
||||
import com.navi.coin.utils.Constants
|
||||
import com.navi.coin.utils.ICountDownHelper
|
||||
import com.navi.coin.navigator.CoinNavigationActions
|
||||
import com.navi.coin.navigator.CoinRouter
|
||||
import com.navi.coin.repo.pagingsource.ScratchCardHistoryListSource
|
||||
import com.navi.coin.repo.repository.ScratchCardHistoryScreenRepo
|
||||
import com.navi.coin.utils.constant.Constants
|
||||
import com.navi.coin.utils.facade.ICountDownHelper
|
||||
import com.navi.common.forge.model.ScreenDefinition
|
||||
import com.navi.common.forge.model.WidgetModelDefinition
|
||||
import com.navi.common.network.ApiConstants
|
||||
|
||||
@@ -8,11 +8,11 @@
|
||||
package com.navi.coins.repo
|
||||
|
||||
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
|
||||
import com.navi.coin.models.TransactionHistoryCardData
|
||||
import com.navi.coin.models.TransactionHistoryResponse
|
||||
import com.navi.coin.network.retrofit.RetrofitService
|
||||
import com.navi.coin.repo.CoinHistoryScreenRepo
|
||||
import com.navi.coin.utils.Constants
|
||||
import com.navi.coin.models.model.TransactionHistoryCardData
|
||||
import com.navi.coin.models.model.TransactionHistoryResponse
|
||||
import com.navi.coin.network.RetrofitService
|
||||
import com.navi.coin.repo.repository.CoinHistoryScreenRepo
|
||||
import com.navi.coin.utils.constant.Constants
|
||||
import com.navi.coins.common.TestDispatcher
|
||||
import com.navi.common.forge.model.ScreenDefinition
|
||||
import com.navi.common.forge.model.ScreenStructure
|
||||
@@ -21,6 +21,7 @@ import com.navi.common.network.models.GenericResponse
|
||||
import com.navi.common.network.models.RepoResult
|
||||
import com.navi.common.network.retrofit.ResponseCallback
|
||||
import com.navi.common.utils.Constants.GZIP
|
||||
import com.navi.rr.network.retrofit.ResponseHandler
|
||||
import io.mockk.MockKAnnotations
|
||||
import io.mockk.coEvery
|
||||
import io.mockk.every
|
||||
@@ -40,6 +41,7 @@ import retrofit2.Response
|
||||
class CoinHistoryScreenRepoTest {
|
||||
@RelaxedMockK private lateinit var superAppRetrofitService: RetrofitService
|
||||
@RelaxedMockK private lateinit var responseCallback: ResponseCallback
|
||||
@RelaxedMockK private lateinit var responseHandler: ResponseHandler
|
||||
private lateinit var repository: CoinHistoryScreenRepo
|
||||
@get:Rule var rule: TestRule = InstantTaskExecutorRule()
|
||||
@InternalCoroutinesApi lateinit var testDispatcher: TestDispatcher
|
||||
@@ -55,7 +57,7 @@ class CoinHistoryScreenRepoTest {
|
||||
@Test
|
||||
fun testFetchCoinHistoryScreenCoinBalanceUiTronConfigs() =
|
||||
runBlocking(testDispatcher) {
|
||||
repository = CoinHistoryScreenRepo(superAppRetrofitService)
|
||||
repository = CoinHistoryScreenRepo(superAppRetrofitService,responseHandler)
|
||||
// Mock Retrofit response
|
||||
val expectedResponse =
|
||||
ScreenDefinition(screenStructure = ScreenStructure(screenId = "1"))
|
||||
@@ -82,7 +84,7 @@ class CoinHistoryScreenRepoTest {
|
||||
@Test
|
||||
fun testFetchCoinHistoryScreenCashRewardsUiTronConfigs() =
|
||||
runBlocking(testDispatcher) {
|
||||
repository = CoinHistoryScreenRepo(superAppRetrofitService)
|
||||
repository = CoinHistoryScreenRepo(superAppRetrofitService,responseHandler)
|
||||
// Mock Retrofit response
|
||||
val expectedResponse =
|
||||
ScreenDefinition(screenStructure = ScreenStructure(screenId = "1"))
|
||||
@@ -109,7 +111,7 @@ class CoinHistoryScreenRepoTest {
|
||||
@Test
|
||||
fun testFetchCoinsListData() =
|
||||
runBlocking(testDispatcher) {
|
||||
repository = CoinHistoryScreenRepo(superAppRetrofitService)
|
||||
repository = CoinHistoryScreenRepo(superAppRetrofitService,responseHandler)
|
||||
// Mock Retrofit response
|
||||
val expectedResponse =
|
||||
TransactionHistoryResponse(
|
||||
@@ -138,7 +140,7 @@ class CoinHistoryScreenRepoTest {
|
||||
@Test
|
||||
fun testFetchCashListData() =
|
||||
runBlocking(testDispatcher) {
|
||||
repository = CoinHistoryScreenRepo(superAppRetrofitService)
|
||||
repository = CoinHistoryScreenRepo(superAppRetrofitService,responseHandler)
|
||||
val expectedResponse =
|
||||
TransactionHistoryResponse(
|
||||
coinHistoryList = listOf(TransactionHistoryCardData("@31123"))
|
||||
|
||||
@@ -8,9 +8,9 @@
|
||||
package com.navi.coins.repo
|
||||
|
||||
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
|
||||
import com.navi.coin.network.retrofit.RetrofitService
|
||||
import com.navi.coin.repo.CoinHomeScreenRepo
|
||||
import com.navi.coin.utils.Constants
|
||||
import com.navi.coin.network.RetrofitService
|
||||
import com.navi.coin.repo.repository.CoinHomeScreenRepo
|
||||
import com.navi.coin.utils.constant.Constants
|
||||
import com.navi.coins.common.TestDispatcher
|
||||
import com.navi.common.forge.model.ScreenDefinition
|
||||
import com.navi.common.forge.model.ScreenStructure
|
||||
|
||||
@@ -3,10 +3,10 @@ package com.navi.coins.vm
|
||||
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.navi.base.cache.repository.NaviCacheRepositoryImpl
|
||||
import com.navi.coin.repo.CashHistoryListSource
|
||||
import com.navi.coin.repo.CoinHistoryListSource
|
||||
import com.navi.coin.repo.CoinHistoryScreenRepo
|
||||
import com.navi.coin.repo.CoinHomeScreenRepo
|
||||
import com.navi.coin.repo.pagingsource.CashHistoryListSource
|
||||
import com.navi.coin.repo.pagingsource.CoinHistoryListSource
|
||||
import com.navi.coin.repo.repository.CoinHistoryScreenRepo
|
||||
import com.navi.coin.repo.repository.CoinHomeScreenRepo
|
||||
import com.navi.coin.vm.CoinHistoryCardScreenState
|
||||
import com.navi.coin.vm.CoinHistoryScreenState
|
||||
import com.navi.coin.vm.CoinHistoryScreenVM
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
package com.navi.coins.vm
|
||||
|
||||
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.navi.base.cache.model.NaviCacheEntity
|
||||
import com.navi.base.cache.repository.NaviCacheRepositoryImpl
|
||||
import com.navi.coin.repo.CashHistoryListSource
|
||||
import com.navi.coin.repo.CoinHistoryListSource
|
||||
import com.navi.coin.repo.CoinHistoryScreenRepo
|
||||
import com.navi.coin.repo.CoinHomeScreenRepo
|
||||
import com.navi.coin.repo.pagingsource.CashHistoryListSource
|
||||
import com.navi.coin.repo.pagingsource.CoinHistoryListSource
|
||||
import com.navi.coin.repo.repository.CoinHistoryScreenRepo
|
||||
import com.navi.coin.repo.repository.CoinHomeScreenRepo
|
||||
import com.navi.coin.vm.CoinHomeScreenVM
|
||||
import com.navi.coins.common.TestDispatcher
|
||||
import com.navi.common.forge.model.ScreenDefinition
|
||||
@@ -21,17 +19,8 @@ import io.mockk.impl.annotations.RelaxedMockK
|
||||
import io.mockk.unmockkAll
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.InternalCoroutinesApi
|
||||
import kotlinx.coroutines.cancel
|
||||
import kotlinx.coroutines.flow.flowOf
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import kotlinx.coroutines.test.StandardTestDispatcher
|
||||
import kotlinx.coroutines.test.TestCoroutineDispatcher
|
||||
import kotlinx.coroutines.test.TestCoroutineScope
|
||||
import kotlinx.coroutines.test.advanceUntilIdle
|
||||
import kotlinx.coroutines.test.resetMain
|
||||
import kotlinx.coroutines.test.runBlockingTest
|
||||
import kotlinx.coroutines.test.runTest
|
||||
import kotlinx.coroutines.test.setMain
|
||||
import org.junit.After
|
||||
import org.junit.Before
|
||||
import org.junit.Rule
|
||||
|
||||
Reference in New Issue
Block a user