NTP-41593 | Sohan | MM Max and Min Font scale in composables. (#15105)

This commit is contained in:
Sohan Reddy Atukula
2025-02-25 12:23:29 +05:30
committed by GitHub
parent 92ba042e94
commit 712712b7ee
4 changed files with 63 additions and 11 deletions

View File

@@ -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"

View File

@@ -686,4 +686,12 @@
<key>UPI_LITE_MANDATE_EXECUTION_MAX_RETRIES</key>
<value>5</value>
</entry>
<entry>
<key>MM_FONT_SCALE_MAX_LIMIT</key>
<value>1.5</value>
</entry>
<entry>
<key>MM_FONT_SCALE_MIN_LIMIT</key>
<value>0.85</value>
</entry>
</defaultsMap>

View File

@@ -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 <bottomSheetType : ScreenBottomSheetType<uiEvent>, 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)
}
}
}

View File

@@ -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) },
)
}
}
}
}