Skip to content

Commit 5456f0e

Browse files
authored
Merge pull request #4226 from element-hq/feature/bma/themeOverride
Theme override
2 parents 560290c + 108b849 commit 5456f0e

File tree

111 files changed

+293
-275
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

111 files changed

+293
-275
lines changed

app/src/main/kotlin/io/element/android/x/MainActivity.kt

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import androidx.activity.enableEdgeToEdge
1414
import androidx.compose.foundation.background
1515
import androidx.compose.foundation.layout.Box
1616
import androidx.compose.foundation.layout.fillMaxSize
17-
import androidx.compose.material3.MaterialTheme
1817
import androidx.compose.runtime.Composable
1918
import androidx.compose.runtime.CompositionLocalProvider
2019
import androidx.compose.ui.Modifier
@@ -26,6 +25,7 @@ import androidx.lifecycle.repeatOnLifecycle
2625
import com.bumble.appyx.core.integration.NodeHost
2726
import com.bumble.appyx.core.integrationpoint.NodeActivity
2827
import com.bumble.appyx.core.plugin.NodeReadyObserver
28+
import io.element.android.compound.theme.ElementTheme
2929
import io.element.android.features.lockscreen.api.LockScreenEntryPoint
3030
import io.element.android.features.lockscreen.api.LockScreenLockState
3131
import io.element.android.features.lockscreen.api.LockScreenService
@@ -61,16 +61,19 @@ class MainActivity : NodeActivity() {
6161
@Composable
6262
private fun MainContent(appBindings: AppBindings) {
6363
val migrationState = appBindings.migrationEntryPoint().present()
64-
ElementThemeApp(appBindings.preferencesStore()) {
64+
ElementThemeApp(
65+
appPreferencesStore = appBindings.preferencesStore(),
66+
enterpriseService = appBindings.enterpriseService(),
67+
) {
6568
CompositionLocalProvider(
6669
LocalSnackbarDispatcher provides appBindings.snackbarDispatcher(),
6770
LocalUriHandler provides SafeUriHandler(this),
6871
LocalAnalyticsService provides appBindings.analyticsService(),
6972
) {
7073
Box(
7174
modifier = Modifier
72-
.fillMaxSize()
73-
.background(MaterialTheme.colorScheme.background),
75+
.fillMaxSize()
76+
.background(ElementTheme.colors.bgCanvasDefault),
7477
) {
7578
if (migrationState.migrationAction.isSuccess()) {
7679
MainNodeHost()

app/src/main/kotlin/io/element/android/x/di/AppBindings.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ package io.element.android.x.di
99

1010
import com.squareup.anvil.annotations.ContributesTo
1111
import io.element.android.features.api.MigrationEntryPoint
12+
import io.element.android.features.enterprise.api.EnterpriseService
1213
import io.element.android.features.lockscreen.api.LockScreenEntryPoint
1314
import io.element.android.features.lockscreen.api.LockScreenService
1415
import io.element.android.features.rageshake.api.reporter.BugReporter
@@ -35,4 +36,6 @@ interface AppBindings {
3536
fun lockScreenEntryPoint(): LockScreenEntryPoint
3637

3738
fun analyticsService(): AnalyticsService
39+
40+
fun enterpriseService(): EnterpriseService
3841
}

enterprise

features/analytics/impl/src/main/kotlin/io/element/android/features/analytics/impl/AnalyticsOptInView.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import androidx.compose.foundation.layout.fillMaxWidth
1515
import androidx.compose.foundation.layout.imePadding
1616
import androidx.compose.foundation.layout.padding
1717
import androidx.compose.foundation.layout.systemBarsPadding
18-
import androidx.compose.material3.MaterialTheme
1918
import androidx.compose.runtime.Composable
2019
import androidx.compose.ui.Alignment
2120
import androidx.compose.ui.BiasAlignment
@@ -111,7 +110,7 @@ private fun AnalyticsOptInHeader(
111110
.padding(8.dp),
112111
style = ElementTheme.typography.fontBodyMdRegular
113112
.copy(
114-
color = MaterialTheme.colorScheme.secondary,
113+
color = ElementTheme.colors.textSecondary,
115114
textAlign = TextAlign.Center,
116115
)
117116
)

features/call/impl/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ setupAnvil()
2929

3030
dependencies {
3131
implementation(projects.appconfig)
32+
implementation(projects.features.enterprise.api)
3233
implementation(projects.libraries.architecture)
3334
implementation(projects.libraries.core)
3435
implementation(projects.libraries.designsystem)

features/call/impl/src/main/kotlin/io/element/android/features/call/impl/ui/ElementCallActivity.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ import io.element.android.features.call.impl.pip.PictureInPictureState
4444
import io.element.android.features.call.impl.pip.PipView
4545
import io.element.android.features.call.impl.services.CallForegroundService
4646
import io.element.android.features.call.impl.utils.CallIntentDataParser
47+
import io.element.android.features.enterprise.api.EnterpriseService
4748
import io.element.android.libraries.architecture.Presenter
4849
import io.element.android.libraries.architecture.bindings
4950
import io.element.android.libraries.core.log.logger.LoggerTag
@@ -61,6 +62,7 @@ class ElementCallActivity :
6162
@Inject lateinit var callIntentDataParser: CallIntentDataParser
6263
@Inject lateinit var presenterFactory: CallScreenPresenter.Factory
6364
@Inject lateinit var appPreferencesStore: AppPreferencesStore
65+
@Inject lateinit var enterpriseService: EnterpriseService
6466
@Inject lateinit var pictureInPicturePresenter: PictureInPicturePresenter
6567

6668
private lateinit var presenter: Presenter<CallScreenState>
@@ -109,7 +111,10 @@ class ElementCallActivity :
109111
setContent {
110112
val pipState = pictureInPicturePresenter.present()
111113
ListenToAndroidEvents(pipState)
112-
ElementThemeApp(appPreferencesStore) {
114+
ElementThemeApp(
115+
appPreferencesStore = appPreferencesStore,
116+
enterpriseService = enterpriseService,
117+
) {
113118
val state = presenter.present()
114119
eventSink = state.eventSink
115120
LaunchedEffect(state.isCallActive, state.isInWidgetMode) {

features/call/impl/src/main/kotlin/io/element/android/features/call/impl/ui/IncomingCallActivity.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import io.element.android.features.call.impl.di.CallBindings
1919
import io.element.android.features.call.impl.notifications.CallNotificationData
2020
import io.element.android.features.call.impl.utils.ActiveCallManager
2121
import io.element.android.features.call.impl.utils.CallState
22+
import io.element.android.features.enterprise.api.EnterpriseService
2223
import io.element.android.libraries.architecture.bindings
2324
import io.element.android.libraries.designsystem.theme.ElementThemeApp
2425
import io.element.android.libraries.preferences.api.store.AppPreferencesStore
@@ -47,6 +48,9 @@ class IncomingCallActivity : AppCompatActivity() {
4748
@Inject
4849
lateinit var appPreferencesStore: AppPreferencesStore
4950

51+
@Inject
52+
lateinit var enterpriseService: EnterpriseService
53+
5054
override fun onCreate(savedInstanceState: Bundle?) {
5155
super.onCreate(savedInstanceState)
5256

@@ -64,7 +68,10 @@ class IncomingCallActivity : AppCompatActivity() {
6468
val notificationData = intent?.let { IntentCompat.getParcelableExtra(it, EXTRA_NOTIFICATION_DATA, CallNotificationData::class.java) }
6569
if (notificationData != null) {
6670
setContent {
67-
ElementThemeApp(appPreferencesStore) {
71+
ElementThemeApp(
72+
appPreferencesStore = appPreferencesStore,
73+
enterpriseService = enterpriseService,
74+
) {
6875
IncomingCallScreen(
6976
notificationData = notificationData,
7077
onAnswer = ::onAnswer,

features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/root/CreateRoomRootView.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import androidx.compose.foundation.layout.padding
1919
import androidx.compose.foundation.layout.size
2020
import androidx.compose.foundation.lazy.LazyColumn
2121
import androidx.compose.material3.ExperimentalMaterial3Api
22-
import androidx.compose.material3.MaterialTheme
2322
import androidx.compose.runtime.Composable
2423
import androidx.compose.ui.Alignment
2524
import androidx.compose.ui.Modifier
@@ -211,7 +210,7 @@ private fun CreateRoomActionButton(
211210
) {
212211
Icon(
213212
modifier = Modifier.size(24.dp),
214-
tint = MaterialTheme.colorScheme.secondary,
213+
tint = ElementTheme.colors.iconSecondary,
215214
resourceId = iconRes,
216215
contentDescription = null,
217216
)

features/enterprise/api/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ android {
1313
}
1414

1515
dependencies {
16+
implementation(libs.compound)
1617
implementation(projects.libraries.architecture)
1718
implementation(projects.libraries.matrix.api)
1819
}

features/enterprise/api/src/main/kotlin/io/element/android/features/enterprise/api/EnterpriseService.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,13 @@
77

88
package io.element.android.features.enterprise.api
99

10+
import io.element.android.compound.tokens.generated.SemanticColors
1011
import io.element.android.libraries.matrix.api.core.SessionId
1112

1213
interface EnterpriseService {
1314
val isEnterpriseBuild: Boolean
1415
suspend fun isEnterpriseUser(sessionId: SessionId): Boolean
16+
17+
fun semanticColorsLight(): SemanticColors
18+
fun semanticColorsDark(): SemanticColors
1519
}

0 commit comments

Comments
 (0)