Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d1cc7535 authored by Alexander Hendrich's avatar Alexander Hendrich Committed by Android (Google) Code Review
Browse files

Merge "[flexiglass] Fix blurry user switcher icon for default image" into main

parents 367d0f9e 39f53566
Loading
Loading
Loading
Loading
+9 −5
Original line number Diff line number Diff line
@@ -77,6 +77,7 @@ import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.platform.LocalLayoutDirection
import androidx.compose.ui.platform.testTag
import androidx.compose.ui.res.dimensionResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.semantics.Role
import androidx.compose.ui.semantics.role
@@ -863,6 +864,8 @@ private fun UserSwitcher(viewModel: BouncerOverlayContentViewModel, modifier: Mo

    val selectedUserImage by viewModel.selectedUserImage.collectAsStateWithLifecycle(null)
    val dropdownItems by viewModel.userSwitcherDropdown.collectAsStateWithLifecycle(emptyList())
    val userSwitcherIconSize = dimensionResource(R.dimen.bouncer_user_switcher_icon_size)
    val dropDownWidth = userSwitcherIconSize + UserSwitcherDropdownExtraWidth

    Column(
        horizontalAlignment = Alignment.CenterHorizontally,
@@ -873,7 +876,7 @@ private fun UserSwitcher(viewModel: BouncerOverlayContentViewModel, modifier: Mo
            Image(
                bitmap = it.asImageBitmap(),
                contentDescription = null,
                modifier = Modifier.size(SelectedUserImageSize).sysuiResTag("user_icon"),
                modifier = Modifier.size(userSwitcherIconSize).sysuiResTag("user_icon"),
            )
        }

@@ -888,7 +891,7 @@ private fun UserSwitcher(viewModel: BouncerOverlayContentViewModel, modifier: Mo
                        Modifier
                            // Remove the built-in padding applied inside PlatformButton:
                            .padding(vertical = 0.dp)
                            .width(UserSwitcherDropdownWidth)
                            .width(dropDownWidth)
                            .height(UserSwitcherDropdownHeight),
                    colors =
                        ButtonDefaults.buttonColors(
@@ -917,6 +920,7 @@ private fun UserSwitcher(viewModel: BouncerOverlayContentViewModel, modifier: Mo
                UserSwitcherDropdownMenu(
                    isExpanded = isDropdownExpanded,
                    items = dropdownItems,
                    dropDownWidth = dropDownWidth,
                    onDismissed = { setDropdownExpanded(false) },
                )
            }
@@ -932,6 +936,7 @@ private fun UserSwitcher(viewModel: BouncerOverlayContentViewModel, modifier: Mo
private fun UserSwitcherDropdownMenu(
    isExpanded: Boolean,
    items: List<BouncerOverlayContentViewModel.UserSwitcherDropdownItemViewModel>,
    dropDownWidth: Dp,
    onDismissed: () -> Unit,
) {
    val context = LocalContext.current
@@ -948,7 +953,7 @@ private fun UserSwitcherDropdownMenu(
            expanded = isExpanded,
            onDismissRequest = onDismissed,
            offset = DpOffset(x = 0.dp, y = -UserSwitcherDropdownHeight),
            modifier = Modifier.width(UserSwitcherDropdownWidth).sysuiResTag("user_list_dropdown"),
            modifier = Modifier.width(dropDownWidth).sysuiResTag("user_list_dropdown"),
        ) {
            items.forEach { userSwitcherDropdownItem ->
                DropdownMenuItem(
@@ -1004,8 +1009,7 @@ private fun animatedAlpha(offset: Float): Float {
    return max(0f, (a * (abs(offset) - m).pow(2) + b).toFloat())
}

private val SelectedUserImageSize = 190.dp
private val UserSwitcherDropdownWidth = SelectedUserImageSize + 2 * 29.dp
private val UserSwitcherDropdownExtraWidth = 2 * 29.dp
private val UserSwitcherDropdownHeight = 60.dp

private object SceneKeys {
+8 −1
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@ import com.android.systemui.dagger.qualifiers.Application
import com.android.systemui.keyguard.domain.interactor.KeyguardDismissActionInteractor
import com.android.systemui.keyguard.domain.interactor.KeyguardMediaKeyInteractor
import com.android.systemui.lifecycle.ExclusiveActivatable
import com.android.systemui.res.R
import com.android.systemui.user.ui.viewmodel.UserSwitcherViewModel
import dagger.assisted.AssistedFactory
import dagger.assisted.AssistedInject
@@ -180,7 +181,13 @@ constructor(

            launch {
                userSwitcher.selectedUser
                    .map { it.image.toBitmap() }
                    .map {
                        val iconSize =
                            applicationContext.resources.getDimensionPixelSize(
                                R.dimen.bouncer_user_switcher_icon_size
                            )
                        it.image.toBitmap(iconSize, iconSize)
                    }
                    .collect { _selectedUserImage.value = it }
            }