Cleanup element call and UI (#4641)
* Use ElementTheme.colors.bgCanvasDefault instead of MaterialTheme.colorScheme.background Even if the value is the same, we should use color from ElementTheme. * Remove background management of ElementCallActivity. It does not work as expected and also changing theme during a call would require to load the url again with the new theme. * Do not use isSystemInDarkTheme() directly. * Use bgSubtleSecondary for background color of Preview. * Use default colors for Preview. * Fix copy paste issue. * Update screenshots --------- Co-authored-by: ElementBot <android@element.io>
This commit is contained in:
parent
1adb7e0ae1
commit
8c64b842a5
8 changed files with 12 additions and 38 deletions
|
|
@ -10,7 +10,6 @@ package io.element.android.features.call.impl.ui
|
||||||
import android.Manifest
|
import android.Manifest
|
||||||
import android.app.PictureInPictureParams
|
import android.app.PictureInPictureParams
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.content.res.Configuration
|
|
||||||
import android.media.AudioAttributes
|
import android.media.AudioAttributes
|
||||||
import android.media.AudioFocusRequest
|
import android.media.AudioFocusRequest
|
||||||
import android.media.AudioManager
|
import android.media.AudioManager
|
||||||
|
|
@ -78,7 +77,6 @@ class ElementCallActivity :
|
||||||
|
|
||||||
private val requestPermissionsLauncher = registerPermissionResultLauncher()
|
private val requestPermissionsLauncher = registerPermissionResultLauncher()
|
||||||
|
|
||||||
private var isDarkMode = false
|
|
||||||
private val webViewTarget = mutableStateOf<CallType?>(null)
|
private val webViewTarget = mutableStateOf<CallType?>(null)
|
||||||
|
|
||||||
private var eventSink: ((CallScreenEvents) -> Unit)? = null
|
private var eventSink: ((CallScreenEvents) -> Unit)? = null
|
||||||
|
|
@ -102,10 +100,6 @@ class ElementCallActivity :
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if (savedInstanceState == null) {
|
|
||||||
updateUiMode(resources.configuration)
|
|
||||||
}
|
|
||||||
|
|
||||||
pictureInPicturePresenter.setPipView(this)
|
pictureInPicturePresenter.setPipView(this)
|
||||||
|
|
||||||
audioManager = getSystemService(AUDIO_SERVICE) as AudioManager
|
audioManager = getSystemService(AUDIO_SERVICE) as AudioManager
|
||||||
|
|
@ -174,11 +168,6 @@ class ElementCallActivity :
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onConfigurationChanged(newConfig: Configuration) {
|
|
||||||
super.onConfigurationChanged(newConfig)
|
|
||||||
updateUiMode(newConfig)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onNewIntent(intent: Intent) {
|
override fun onNewIntent(intent: Intent) {
|
||||||
super.onNewIntent(intent)
|
super.onNewIntent(intent)
|
||||||
setCallType(intent)
|
setCallType(intent)
|
||||||
|
|
@ -283,19 +272,6 @@ class ElementCallActivity :
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateUiMode(configuration: Configuration) {
|
|
||||||
val prevDarkMode = isDarkMode
|
|
||||||
val currentNightMode = configuration.uiMode and Configuration.UI_MODE_NIGHT_YES
|
|
||||||
isDarkMode = currentNightMode != 0
|
|
||||||
if (prevDarkMode != isDarkMode) {
|
|
||||||
if (isDarkMode) {
|
|
||||||
window.setBackgroundDrawableResource(android.R.drawable.screen_background_dark)
|
|
||||||
} else {
|
|
||||||
window.setBackgroundDrawableResource(android.R.drawable.screen_background_light)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@RequiresApi(Build.VERSION_CODES.O)
|
@RequiresApi(Build.VERSION_CODES.O)
|
||||||
override fun setPipParams() {
|
override fun setPipParams() {
|
||||||
setPictureInPictureParams(getPictureInPictureParams())
|
setPictureInPictureParams(getPictureInPictureParams())
|
||||||
|
|
|
||||||
|
|
@ -49,8 +49,8 @@ fun AdvancedSettingsView(
|
||||||
title = stringResource(id = CommonStrings.common_appearance),
|
title = stringResource(id = CommonStrings.common_appearance),
|
||||||
selectedOption = state.theme,
|
selectedOption = state.theme,
|
||||||
options = ThemeOption.entries.toPersistentList(),
|
options = ThemeOption.entries.toPersistentList(),
|
||||||
onSelectOption = { logLevel ->
|
onSelectOption = { themeOption ->
|
||||||
state.eventSink(AdvancedSettingsEvents.SetTheme(logLevel))
|
state.eventSink(AdvancedSettingsEvents.SetTheme(themeOption))
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
ListItem(
|
ListItem(
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,6 @@ package io.element.android.libraries.designsystem.atomic.atoms
|
||||||
import androidx.compose.foundation.Image
|
import androidx.compose.foundation.Image
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.foundation.border
|
import androidx.compose.foundation.border
|
||||||
import androidx.compose.foundation.isSystemInDarkTheme
|
|
||||||
import androidx.compose.foundation.layout.Box
|
import androidx.compose.foundation.layout.Box
|
||||||
import androidx.compose.foundation.layout.size
|
import androidx.compose.foundation.layout.size
|
||||||
import androidx.compose.foundation.shape.CircleShape
|
import androidx.compose.foundation.shape.CircleShape
|
||||||
|
|
@ -38,7 +37,7 @@ fun ElementLogoAtom(
|
||||||
size: ElementLogoAtomSize,
|
size: ElementLogoAtomSize,
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
useBlurredShadow: Boolean = canUseBlurMaskFilter(),
|
useBlurredShadow: Boolean = canUseBlurMaskFilter(),
|
||||||
darkTheme: Boolean = isSystemInDarkTheme(),
|
darkTheme: Boolean = ElementTheme.isLightTheme.not(),
|
||||||
) {
|
) {
|
||||||
val blur = if (darkTheme) 160.dp else 24.dp
|
val blur = if (darkTheme) 160.dp else 24.dp
|
||||||
val shadowColor = if (darkTheme) size.shadowColorDark else size.shadowColorLight
|
val shadowColor = if (darkTheme) size.shadowColorDark else size.shadowColorLight
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,6 @@
|
||||||
package io.element.android.libraries.designsystem.atomic.molecules
|
package io.element.android.libraries.designsystem.atomic.molecules
|
||||||
|
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.foundation.isSystemInDarkTheme
|
|
||||||
import androidx.compose.foundation.layout.Arrangement
|
import androidx.compose.foundation.layout.Arrangement
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.Row
|
import androidx.compose.foundation.layout.Row
|
||||||
|
|
@ -20,6 +19,7 @@ import androidx.compose.runtime.remember
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
|
import io.element.android.compound.theme.ElementTheme
|
||||||
import io.element.android.compound.tokens.generated.CompoundIcons
|
import io.element.android.compound.tokens.generated.CompoundIcons
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
|
|
@ -62,7 +62,7 @@ fun InfoListItemMolecule(
|
||||||
@Composable
|
@Composable
|
||||||
internal fun InfoListItemMoleculePreview() {
|
internal fun InfoListItemMoleculePreview() {
|
||||||
ElementPreview {
|
ElementPreview {
|
||||||
val color = if (isSystemInDarkTheme()) Color.DarkGray else Color.LightGray
|
val color = ElementTheme.colors.bgSubtleSecondary
|
||||||
Column(
|
Column(
|
||||||
modifier = Modifier.padding(10.dp),
|
modifier = Modifier.padding(10.dp),
|
||||||
verticalArrangement = Arrangement.spacedBy(8.dp),
|
verticalArrangement = Arrangement.spacedBy(8.dp),
|
||||||
|
|
|
||||||
|
|
@ -111,7 +111,6 @@ internal fun InfoListOrganismPreview() = ElementPreview {
|
||||||
InfoListItem(message = "A bottom item"),
|
InfoListItem(message = "A bottom item"),
|
||||||
)
|
)
|
||||||
InfoListOrganism(
|
InfoListOrganism(
|
||||||
items,
|
items = items,
|
||||||
backgroundColor = ElementTheme.materialColors.surfaceVariant,
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,12 +10,12 @@ package io.element.android.libraries.designsystem.theme.components
|
||||||
import androidx.compose.foundation.layout.PaddingValues
|
import androidx.compose.foundation.layout.PaddingValues
|
||||||
import androidx.compose.foundation.layout.WindowInsets
|
import androidx.compose.foundation.layout.WindowInsets
|
||||||
import androidx.compose.material3.FabPosition
|
import androidx.compose.material3.FabPosition
|
||||||
import androidx.compose.material3.MaterialTheme
|
|
||||||
import androidx.compose.material3.ScaffoldDefaults
|
import androidx.compose.material3.ScaffoldDefaults
|
||||||
import androidx.compose.material3.contentColorFor
|
import androidx.compose.material3.contentColorFor
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
|
import io.element.android.compound.theme.ElementTheme
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun Scaffold(
|
fun Scaffold(
|
||||||
|
|
@ -25,7 +25,7 @@ fun Scaffold(
|
||||||
snackbarHost: @Composable () -> Unit = {},
|
snackbarHost: @Composable () -> Unit = {},
|
||||||
floatingActionButton: @Composable () -> Unit = {},
|
floatingActionButton: @Composable () -> Unit = {},
|
||||||
floatingActionButtonPosition: FabPosition = FabPosition.End,
|
floatingActionButtonPosition: FabPosition = FabPosition.End,
|
||||||
containerColor: Color = MaterialTheme.colorScheme.background,
|
containerColor: Color = ElementTheme.colors.bgCanvasDefault,
|
||||||
contentColor: Color = contentColorFor(containerColor),
|
contentColor: Color = contentColorFor(containerColor),
|
||||||
contentWindowInsets: WindowInsets = ScaffoldDefaults.contentWindowInsets,
|
contentWindowInsets: WindowInsets = ScaffoldDefaults.contentWindowInsets,
|
||||||
content: @Composable (PaddingValues) -> Unit
|
content: @Composable (PaddingValues) -> Unit
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:0a1ad0dcf6187838d37d7a6f9362e6fed44af4687b0494404a5343bc2de24723
|
oid sha256:d4e6027ed8a8c11bc294add70bb67986fc52c70a51a3410e35f6bab2a8a71a9a
|
||||||
size 17311
|
size 17211
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:8dfb1d166afbd78aa6807be751cd98cb4f5f704dafa46a7b9c98e9376c9f7f1c
|
oid sha256:7201f6fb1368435a944b07a557a595509afa01d70cafa9ec0f4d8ff46db95482
|
||||||
size 16678
|
size 16521
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue