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

Commit 4ccb9321 authored by burakov's avatar burakov
Browse files

[flexiglass] Implementation of the Shade scene UI.

This is an initial version that is pending final spec from UX. QS and
Notifications will be implemented separately.

Bug: 280887022
Test: manually verified on device, see screenshots attached to the bug.
Change-Id: Ic187c5a0057f88334bfbcaff3a36694ac57e369a
parent aec54aad
Loading
Loading
Loading
Loading
+23 −3
Original line number Original line Diff line number Diff line
@@ -17,15 +17,19 @@


package com.android.systemui.notifications.ui.composable
package com.android.systemui.notifications.ui.composable


import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.defaultMinSize
import androidx.compose.foundation.layout.defaultMinSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.dp


@Composable
@Composable
@@ -34,10 +38,26 @@ fun Notifications(
) {
) {
    // TODO(b/272779828): implement.
    // TODO(b/272779828): implement.
    Column(
    Column(
        modifier = modifier.fillMaxWidth().defaultMinSize(minHeight = 300.dp).padding(4.dp),
        modifier =
            modifier
                .fillMaxWidth()
                .defaultMinSize(minHeight = 300.dp)
                .clip(RoundedCornerShape(32.dp))
                .background(MaterialTheme.colorScheme.surface)
                .padding(16.dp),
    ) {
    ) {
        Text("Notifications", modifier = Modifier.align(Alignment.CenterHorizontally))
        Text(
            text = "Notifications",
            modifier = Modifier.align(Alignment.CenterHorizontally),
            style = MaterialTheme.typography.titleLarge,
            color = MaterialTheme.colorScheme.onSurface,
        )
        Spacer(modifier = Modifier.weight(1f))
        Spacer(modifier = Modifier.weight(1f))
        Text("Shelf", modifier = Modifier.align(Alignment.CenterHorizontally))
        Text(
            text = "Shelf",
            modifier = Modifier.align(Alignment.CenterHorizontally),
            style = MaterialTheme.typography.titleSmall,
            color = MaterialTheme.colorScheme.onSurface,
        )
    }
    }
}
}
+23 −3
Original line number Original line Diff line number Diff line
@@ -17,15 +17,19 @@


package com.android.systemui.qs.footer.ui.compose
package com.android.systemui.qs.footer.ui.compose


import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.defaultMinSize
import androidx.compose.foundation.layout.defaultMinSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.dp


@Composable
@Composable
@@ -34,10 +38,26 @@ fun QuickSettings(
) {
) {
    // TODO(b/272780058): implement.
    // TODO(b/272780058): implement.
    Column(
    Column(
        modifier = modifier.fillMaxWidth().defaultMinSize(minHeight = 300.dp).padding(4.dp),
        modifier =
            modifier
                .fillMaxWidth()
                .defaultMinSize(minHeight = 300.dp)
                .clip(RoundedCornerShape(32.dp))
                .background(MaterialTheme.colorScheme.primary)
                .padding(16.dp),
    ) {
    ) {
        Text("Quick settings", modifier = Modifier.align(Alignment.CenterHorizontally))
        Text(
            text = "Quick settings",
            modifier = Modifier.align(Alignment.CenterHorizontally),
            style = MaterialTheme.typography.titleLarge,
            color = MaterialTheme.colorScheme.onPrimary,
        )
        Spacer(modifier = Modifier.weight(1f))
        Spacer(modifier = Modifier.weight(1f))
        Text("QS footer actions", modifier = Modifier.align(Alignment.CenterHorizontally))
        Text(
            text = "QS footer actions",
            modifier = Modifier.align(Alignment.CenterHorizontally),
            style = MaterialTheme.typography.titleSmall,
            color = MaterialTheme.colorScheme.onPrimary,
        )
    }
    }
}
}
+17 −29
Original line number Original line Diff line number Diff line
@@ -16,18 +16,19 @@


package com.android.systemui.shade.ui.composable
package com.android.systemui.shade.ui.composable


import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.Button
import androidx.compose.foundation.layout.height
import androidx.compose.material3.MaterialTheme
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.dp
import com.android.systemui.dagger.qualifiers.Application
import com.android.systemui.dagger.qualifiers.Application
import com.android.systemui.notifications.ui.composable.Notifications
import com.android.systemui.qs.footer.ui.compose.QuickSettings
import com.android.systemui.scene.shared.model.Direction
import com.android.systemui.scene.shared.model.Direction
import com.android.systemui.scene.shared.model.SceneKey
import com.android.systemui.scene.shared.model.SceneKey
import com.android.systemui.scene.shared.model.SceneModel
import com.android.systemui.scene.shared.model.SceneModel
@@ -62,12 +63,7 @@ class ShadeScene(
    override fun Content(
    override fun Content(
        containerName: String,
        containerName: String,
        modifier: Modifier,
        modifier: Modifier,
    ) {
    ) = ShadeScene(viewModel, modifier)
        ShadeScene(
            viewModel = viewModel,
            modifier = modifier,
        )
    }


    private fun destinationScenes(
    private fun destinationScenes(
        up: SceneKey,
        up: SceneKey,
@@ -84,23 +80,15 @@ private fun ShadeScene(
    viewModel: ShadeSceneViewModel,
    viewModel: ShadeSceneViewModel,
    modifier: Modifier = Modifier,
    modifier: Modifier = Modifier,
) {
) {
    // TODO(b/280887022): implement the real UI.

    Box(modifier = modifier) {
    Column(
    Column(
        horizontalAlignment = Alignment.CenterHorizontally,
        horizontalAlignment = Alignment.CenterHorizontally,
            modifier = Modifier.align(Alignment.Center)
        verticalArrangement = Arrangement.spacedBy(16.dp),
        ) {
        modifier =
            Text("Shade", style = MaterialTheme.typography.headlineMedium)
            Modifier.fillMaxSize()
            Row(
                .clickable(onClick = { viewModel.onContentClicked() })
                horizontalArrangement = Arrangement.spacedBy(8.dp),
                .padding(horizontal = 16.dp, vertical = 48.dp)
    ) {
    ) {
                Button(
        QuickSettings(modifier = modifier.height(160.dp))
                    onClick = { viewModel.onContentClicked() },
        Notifications(modifier = modifier.weight(1f))
                ) {
                    Text("Open some content")
                }
            }
        }
    }
    }
}
}