Change LocalIsEnterpriseBuild to LocalBuildMeta

This commit is contained in:
Benoit Marty
2025-03-10 11:08:50 +01:00
parent 8c65dee61f
commit ea5fde99a5
8 changed files with 39 additions and 9 deletions

View File

@@ -64,6 +64,7 @@ class MainActivity : NodeActivity() {
ElementThemeApp(
appPreferencesStore = appBindings.preferencesStore(),
enterpriseService = appBindings.enterpriseService(),
buildMeta = appBindings.buildMeta()
) {
CompositionLocalProvider(
LocalSnackbarDispatcher provides appBindings.snackbarDispatcher(),

View File

@@ -13,6 +13,7 @@ import io.element.android.features.enterprise.api.EnterpriseService
import io.element.android.features.lockscreen.api.LockScreenEntryPoint
import io.element.android.features.lockscreen.api.LockScreenService
import io.element.android.features.rageshake.api.reporter.BugReporter
import io.element.android.libraries.core.meta.BuildMeta
import io.element.android.libraries.designsystem.utils.snackbar.SnackbarDispatcher
import io.element.android.libraries.di.AppScope
import io.element.android.libraries.matrix.api.tracing.TracingService
@@ -38,4 +39,6 @@ interface AppBindings {
fun analyticsService(): AnalyticsService
fun enterpriseService(): EnterpriseService
fun buildMeta(): BuildMeta
}

View File

@@ -48,6 +48,7 @@ import io.element.android.features.enterprise.api.EnterpriseService
import io.element.android.libraries.architecture.Presenter
import io.element.android.libraries.architecture.bindings
import io.element.android.libraries.core.log.logger.LoggerTag
import io.element.android.libraries.core.meta.BuildMeta
import io.element.android.libraries.designsystem.theme.ElementThemeApp
import io.element.android.libraries.preferences.api.store.AppPreferencesStore
import timber.log.Timber
@@ -64,6 +65,7 @@ class ElementCallActivity :
@Inject lateinit var appPreferencesStore: AppPreferencesStore
@Inject lateinit var enterpriseService: EnterpriseService
@Inject lateinit var pictureInPicturePresenter: PictureInPicturePresenter
@Inject lateinit var buildMeta: BuildMeta
private lateinit var presenter: Presenter<CallScreenState>
@@ -114,6 +116,7 @@ class ElementCallActivity :
ElementThemeApp(
appPreferencesStore = appPreferencesStore,
enterpriseService = enterpriseService,
buildMeta = buildMeta,
) {
val state = presenter.present()
eventSink = state.eventSink

View File

@@ -22,6 +22,7 @@ import io.element.android.features.lockscreen.impl.unlock.PinUnlockPresenter
import io.element.android.features.lockscreen.impl.unlock.PinUnlockView
import io.element.android.features.lockscreen.impl.unlock.di.PinUnlockBindings
import io.element.android.libraries.architecture.bindings
import io.element.android.libraries.core.meta.BuildMeta
import io.element.android.libraries.designsystem.theme.ElementThemeApp
import io.element.android.libraries.preferences.api.store.AppPreferencesStore
import kotlinx.coroutines.launch
@@ -38,6 +39,7 @@ class PinUnlockActivity : AppCompatActivity() {
@Inject lateinit var lockScreenService: LockScreenService
@Inject lateinit var appPreferencesStore: AppPreferencesStore
@Inject lateinit var enterpriseService: EnterpriseService
@Inject lateinit var buildMeta: BuildMeta
override fun onCreate(savedInstanceState: Bundle?) {
enableEdgeToEdge()
@@ -47,6 +49,7 @@ class PinUnlockActivity : AppCompatActivity() {
ElementThemeApp(
appPreferencesStore = appPreferencesStore,
enterpriseService = enterpriseService,
buildMeta = buildMeta,
) {
val state = presenter.present()
PinUnlockView(

View File

@@ -33,7 +33,7 @@ import io.element.android.features.messages.impl.timeline.protection.TimelinePro
import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.text.toPx
import io.element.android.libraries.designsystem.theme.LocalIsEnterpriseBuild
import io.element.android.libraries.designsystem.theme.LocalBuildMeta
import io.element.android.libraries.designsystem.theme.highlightedMessageBackgroundColor
import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.core.UserId
@@ -172,7 +172,7 @@ private fun Modifier.focusedEvent(
focusedEventOffset: Dp
): Modifier {
val highlightedLineColor = ElementTheme.colors.textActionAccent
val gradientFirstColor = if (LocalIsEnterpriseBuild.current) {
val gradientFirstColor = if (LocalBuildMeta.current.isEnterpriseBuild) {
ElementTheme.colors.textActionAccent.copy(alpha = 0.125f)
} else {
ElementTheme.colors.highlightedMessageBackgroundColor

View File

@@ -42,7 +42,7 @@ import io.element.android.compound.tokens.generated.CompoundIcons
import io.element.android.compound.tokens.generated.internal.LightColorTokens
import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.theme.LocalIsEnterpriseBuild
import io.element.android.libraries.designsystem.theme.LocalBuildMeta
import io.element.android.libraries.designsystem.theme.components.Icon
@OptIn(CoreColorToken::class)
@@ -53,12 +53,12 @@ fun GradientFloatingActionButton(
shape: Shape = RoundedCornerShape(25),
content: @Composable () -> Unit,
) {
val color1 = if (LocalIsEnterpriseBuild.current) {
val color1 = if (LocalBuildMeta.current.isEnterpriseBuild) {
ElementTheme.colors.textActionAccent
} else {
LightColorTokens.colorGreen700
}
val color2 = if (LocalIsEnterpriseBuild.current) {
val color2 = if (LocalBuildMeta.current.isEnterpriseBuild) {
ElementTheme.colors.textActionAccent
} else {
LightColorTokens.colorBlue900

View File

@@ -42,7 +42,7 @@ import io.element.android.compound.tokens.generated.internal.DarkColorTokens
import io.element.android.compound.tokens.generated.internal.LightColorTokens
import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.theme.LocalIsEnterpriseBuild
import io.element.android.libraries.designsystem.theme.LocalBuildMeta
import io.element.android.libraries.designsystem.theme.components.ButtonSize
import io.element.android.libraries.designsystem.theme.components.HorizontalDivider
import io.element.android.libraries.designsystem.theme.components.lowHorizontalPaddingValue
@@ -67,7 +67,7 @@ fun SuperButton(
}
}
val isLightTheme = ElementTheme.isLightTheme
val colors = if (LocalIsEnterpriseBuild.current) {
val colors = if (LocalBuildMeta.current.isEnterpriseBuild) {
listOf(
ElementTheme.colors.textActionAccent,
ElementTheme.colors.textActionAccent,

View File

@@ -20,9 +20,28 @@ import io.element.android.compound.theme.Theme
import io.element.android.compound.theme.isDark
import io.element.android.compound.theme.mapToTheme
import io.element.android.features.enterprise.api.EnterpriseService
import io.element.android.libraries.core.meta.BuildMeta
import io.element.android.libraries.core.meta.BuildType
import io.element.android.libraries.preferences.api.store.AppPreferencesStore
val LocalIsEnterpriseBuild = staticCompositionLocalOf { false }
val LocalBuildMeta = staticCompositionLocalOf {
BuildMeta(
isDebuggable = true,
buildType = BuildType.DEBUG,
applicationName = "MyApp",
productionApplicationName = "MyAppProd",
desktopApplicationName = "MyAppDesktop",
applicationId = "AppId",
isEnterpriseBuild = false,
lowPrivacyLoggingEnabled = false,
versionName = "aVersion",
versionCode = 123,
gitRevision = "aRevision",
gitBranchName = "aBranch",
flavorDescription = "aFlavor",
flavorShortDescription = "aFlavorShort",
)
}
/**
* Theme to use for all the regular screens of the application.
@@ -35,6 +54,7 @@ val LocalIsEnterpriseBuild = staticCompositionLocalOf { false }
fun ElementThemeApp(
appPreferencesStore: AppPreferencesStore,
enterpriseService: EnterpriseService,
buildMeta: BuildMeta,
content: @Composable () -> Unit,
) {
val theme by remember {
@@ -53,7 +73,7 @@ fun ElementThemeApp(
val compoundLight = remember { enterpriseService.semanticColorsLight() }
val compoundDark = remember { enterpriseService.semanticColorsDark() }
CompositionLocalProvider(
LocalIsEnterpriseBuild provides enterpriseService.isEnterpriseBuild,
LocalBuildMeta provides buildMeta,
) {
ElementTheme(
darkTheme = theme.isDark(),