diff --git a/android/navi-common/src/main/java/com/navi/common/firebaseremoteconfig/FirebaseRemoteConfigHelper.kt b/android/navi-common/src/main/java/com/navi/common/firebaseremoteconfig/FirebaseRemoteConfigHelper.kt index afbb813bda..508732af87 100644 --- a/android/navi-common/src/main/java/com/navi/common/firebaseremoteconfig/FirebaseRemoteConfigHelper.kt +++ b/android/navi-common/src/main/java/com/navi/common/firebaseremoteconfig/FirebaseRemoteConfigHelper.kt @@ -272,6 +272,8 @@ object FirebaseRemoteConfigHelper { const val MONEY_MANAGER_DASHBOARD_SPEND_CATEGORIZATION_TIMEOUT = "MONEY_MANAGER_DASHBOARD_SPEND_CATEGORIZATION_TIMEOUT" const val MM_DARK_MODE_ENABLED = "MM_DARK_MODE_ENABLED" + const val MM_FONT_SCALE_MIN_LIMIT = "MM_FONT_SCALE_MIN_LIMIT" + const val MM_FONT_SCALE_MAX_LIMIT = "MM_FONT_SCALE_MAX_LIMIT" // FESTIVE THEME const val FESTIVE_RESOURCE_URL_LIST = "FESTIVE_RESOURCE_URL_LIST" diff --git a/android/navi-common/src/main/res/xml/default_remote_config.xml b/android/navi-common/src/main/res/xml/default_remote_config.xml index 62e01815ce..762f5501e7 100644 --- a/android/navi-common/src/main/res/xml/default_remote_config.xml +++ b/android/navi-common/src/main/res/xml/default_remote_config.xml @@ -686,4 +686,12 @@ UPI_LITE_MANDATE_EXECUTION_MAX_RETRIES 5 + + MM_FONT_SCALE_MAX_LIMIT + 1.5 + + + MM_FONT_SCALE_MIN_LIMIT + 0.85 + \ No newline at end of file diff --git a/android/navi-money-manager/src/main/kotlin/com/navi/moneymanager/common/ui/composable/bottomSheet/MMBottomSheet.kt b/android/navi-money-manager/src/main/kotlin/com/navi/moneymanager/common/ui/composable/bottomSheet/MMBottomSheet.kt index 6f7b004112..88fdab3939 100644 --- a/android/navi-money-manager/src/main/kotlin/com/navi/moneymanager/common/ui/composable/bottomSheet/MMBottomSheet.kt +++ b/android/navi-money-manager/src/main/kotlin/com/navi/moneymanager/common/ui/composable/bottomSheet/MMBottomSheet.kt @@ -8,9 +8,13 @@ package com.navi.moneymanager.common.ui.composable.bottomSheet import androidx.compose.runtime.Composable +import androidx.compose.runtime.CompositionLocalProvider +import androidx.compose.ui.platform.LocalDensity +import androidx.compose.ui.unit.Density import com.navi.base.utils.orFalse import com.navi.base.utils.orTrue import com.navi.common.basemvi.UiEvent +import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper import com.navi.elex.atoms.ElexBottomSheet import com.navi.elex.theme.elexColors import com.navi.moneymanager.common.model.bottomSheet.BottomSheetState @@ -32,6 +36,23 @@ internal fun , uiEvent : UiEven shape = bottomSheetConfig.shape, containerColor = elexColors.base.background.gray.intense, ) { - content(state.type) + CompositionLocalProvider( + LocalDensity provides + Density( + LocalDensity.current.density, + LocalDensity.current.fontScale.coerceIn( + FirebaseRemoteConfigHelper.getDouble( + key = FirebaseRemoteConfigHelper.MM_FONT_SCALE_MIN_LIMIT + ) + .toFloat(), + FirebaseRemoteConfigHelper.getDouble( + key = FirebaseRemoteConfigHelper.MM_FONT_SCALE_MAX_LIMIT + ) + .toFloat(), + ), + ) + ) { + content(state.type) + } } } diff --git a/android/navi-money-manager/src/main/kotlin/com/navi/moneymanager/entry/ui/activity/MMActivity.kt b/android/navi-money-manager/src/main/kotlin/com/navi/moneymanager/entry/ui/activity/MMActivity.kt index 8664cf489b..cfa1e84a30 100644 --- a/android/navi-money-manager/src/main/kotlin/com/navi/moneymanager/entry/ui/activity/MMActivity.kt +++ b/android/navi-money-manager/src/main/kotlin/com/navi/moneymanager/entry/ui/activity/MMActivity.kt @@ -18,6 +18,9 @@ import androidx.activity.enableEdgeToEdge import androidx.activity.viewModels import androidx.appcompat.app.AppCompatDelegate import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.runtime.CompositionLocalProvider +import androidx.compose.ui.platform.LocalDensity +import androidx.compose.ui.unit.Density import androidx.lifecycle.lifecycleScope import androidx.navigation.compose.rememberNavController import com.navi.base.model.CtaData @@ -64,6 +67,7 @@ class MMActivity : MMBaseActivity(), Auth { navigationAction = NavigationAction.Default, ) } + is AnubhavExit -> mmSharedVM.handleFinarkeinError(anubhavResult) } } @@ -107,16 +111,33 @@ class MMActivity : MMBaseActivity(), Auth { defaultValue = false, ) && isSystemInDarkTheme() - MoneyManagerTheme(darkModeEnabled = darkModeEnabled) { - DestinationsNavHost( - startRoute = - if (isUserOnBoarded) DashboardScreenDestination - else LauncherScreenDestination, - navGraph = NavGraphs.root, - engine = naviHostEngine(), - navController = navController, - dependenciesContainerBuilder = { dependency(this@MMActivity) }, - ) + CompositionLocalProvider( + LocalDensity provides + Density( + LocalDensity.current.density, + LocalDensity.current.fontScale.coerceIn( + FirebaseRemoteConfigHelper.getDouble( + key = FirebaseRemoteConfigHelper.MM_FONT_SCALE_MIN_LIMIT + ) + .toFloat(), + FirebaseRemoteConfigHelper.getDouble( + key = FirebaseRemoteConfigHelper.MM_FONT_SCALE_MAX_LIMIT + ) + .toFloat(), + ), + ) + ) { + MoneyManagerTheme(darkModeEnabled = darkModeEnabled) { + DestinationsNavHost( + startRoute = + if (isUserOnBoarded) DashboardScreenDestination + else LauncherScreenDestination, + navGraph = NavGraphs.root, + engine = naviHostEngine(), + navController = navController, + dependenciesContainerBuilder = { dependency(this@MMActivity) }, + ) + } } } }