Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
[Jetchat] Update to snapshot 6953474
Change-Id: I3bd65f0b17173a4215e02f750439a81faad2ab74
  • Loading branch information
JoseAlcerreca committed Nov 6, 2020
commit f05a6675694e13da3e1f19ff7ae37621ccd4ee47
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@

package com.example.compose.jetchat

import androidx.compose.foundation.Text
import androidx.compose.material.AlertDialog
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Text
import androidx.compose.material.TextButton
import androidx.compose.runtime.Composable

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@ import androidx.compose.animation.transition
import androidx.compose.foundation.layout.Box
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.Layout
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.drawOpacity
import androidx.compose.ui.layout.Layout
import androidx.compose.ui.util.lerp
import kotlin.math.roundToInt

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,13 @@

package com.example.compose.jetchat.components

import androidx.compose.foundation.text.FirstBaseline
import androidx.compose.foundation.text.LastBaseline
import androidx.compose.ui.LayoutModifier
import androidx.compose.ui.Measurable
import androidx.compose.ui.MeasureScope
import androidx.compose.ui.Modifier
import androidx.compose.ui.layout.FirstBaseline
import androidx.compose.ui.layout.LastBaseline
import androidx.compose.ui.layout.LayoutModifier
import androidx.compose.ui.layout.Measurable
import androidx.compose.ui.layout.MeasureResult
import androidx.compose.ui.layout.MeasureScope
import androidx.compose.ui.unit.Constraints
import androidx.compose.ui.unit.Dp

Expand All @@ -45,7 +46,7 @@ data class BaselineHeightModifier(
override fun MeasureScope.measure(
measurable: Measurable,
constraints: Constraints
): MeasureScope.MeasureResult {
): MeasureResult {

val textPlaceable = measurable.measure(constraints)
val firstBaseline = textPlaceable[FirstBaseline]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,14 @@
package com.example.compose.jetchat.components

import androidx.compose.foundation.Image
import androidx.compose.foundation.Text
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.RowScope
import androidx.compose.foundation.layout.padding
import androidx.compose.material.Divider
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Text
import androidx.compose.material.TopAppBar
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ import androidx.compose.foundation.ClickableText
import androidx.compose.foundation.Image
import androidx.compose.foundation.ScrollState
import androidx.compose.foundation.ScrollableColumn
import androidx.compose.foundation.Text
import androidx.compose.foundation.border
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Box
Expand All @@ -32,29 +31,31 @@ import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.paddingFrom
import androidx.compose.foundation.layout.preferredHeight
import androidx.compose.foundation.layout.preferredSize
import androidx.compose.foundation.layout.preferredWidth
import androidx.compose.foundation.layout.relativePaddingFrom
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.text.LastBaseline
import androidx.compose.material.AmbientEmphasisLevels
import androidx.compose.material.AmbientContentAlpha
import androidx.compose.material.ContentAlpha
import androidx.compose.material.Divider
import androidx.compose.material.Icon
import androidx.compose.material.MaterialTheme
import androidx.compose.material.ProvideEmphasis
import androidx.compose.material.Surface
import androidx.compose.material.Text
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.Info
import androidx.compose.material.icons.outlined.Search
import androidx.compose.runtime.Composable
import androidx.compose.runtime.Providers
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.layout.LastBaseline
import androidx.compose.ui.platform.DensityAmbient
import androidx.compose.ui.platform.UriHandlerAmbient
import androidx.compose.ui.platform.testTag
Expand Down Expand Up @@ -137,8 +138,7 @@ fun ChannelNameBar(
style = MaterialTheme.typography.subtitle1
)
// Number of members
// TODO: Multiple emphasis layers - https://issuetracker.google.com/159017896
ProvideEmphasis(emphasis = AmbientEmphasisLevels.current.medium) {
Providers(AmbientContentAlpha provides ContentAlpha.medium) {
Text(
text = stringResource(R.string.members, channelMembers),
style = MaterialTheme.typography.caption,
Expand All @@ -148,7 +148,7 @@ fun ChannelNameBar(
}
},
actions = {
ProvideEmphasis(emphasis = AmbientEmphasisLevels.current.medium) {
Providers(AmbientContentAlpha provides ContentAlpha.medium) {
// Search icon
Icon(
asset = Icons.Outlined.Search,
Expand Down Expand Up @@ -311,17 +311,15 @@ fun AuthorAndTextMessage(
private fun AuthorNameTimestamp(msg: Message) {
// Combine author and timestamp for a11y.
Row(modifier = Modifier.semantics(mergeAllDescendants = true) {}) {
ProvideEmphasis(emphasis = AmbientEmphasisLevels.current.high) {
Text(
text = msg.author,
style = MaterialTheme.typography.subtitle1,
modifier = Modifier
.alignBy(LastBaseline)
.relativePaddingFrom(LastBaseline, after = 8.dp) // Space to 1st bubble
)
}
Text(
text = msg.author,
style = MaterialTheme.typography.subtitle1,
modifier = Modifier
.alignBy(LastBaseline)
.paddingFrom(LastBaseline, after = 8.dp) // Space to 1st bubble
)
Spacer(modifier = Modifier.preferredWidth(8.dp))
ProvideEmphasis(emphasis = AmbientEmphasisLevels.current.medium) {
Providers(AmbientContentAlpha provides ContentAlpha.medium) {
Text(
text = msg.timestamp,
style = MaterialTheme.typography.caption,
Expand All @@ -338,7 +336,7 @@ private val LastChatBubbleShape = RoundedCornerShape(0.dp, 8.dp, 8.dp, 8.dp)
fun DayHeader(dayString: String) {
Row(modifier = Modifier.padding(vertical = 8.dp, horizontal = 16.dp).preferredHeight(16.dp)) {
DayHeaderLine()
ProvideEmphasis(emphasis = AmbientEmphasisLevels.current.medium) {
Providers(AmbientContentAlpha provides ContentAlpha.medium) {
Text(
text = dayString,
modifier = Modifier.padding(horizontal = 16.dp),
Expand Down Expand Up @@ -373,11 +371,9 @@ fun ChatItemBubble(
val bubbleShape = if (lastMessageByAuthor) LastChatBubbleShape else ChatBubbleShape
Column {
Surface(color = backgroundBubbleColor, shape = bubbleShape) {
ProvideEmphasis(emphasis = AmbientEmphasisLevels.current.high) {
ClickableMessage(
message = message
)
}
ClickableMessage(
message = message
)
}

message.image?.let {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,12 @@ package com.example.compose.jetchat.conversation
import androidx.compose.animation.DpPropKey
import androidx.compose.animation.core.transitionDefinition
import androidx.compose.animation.transition
import androidx.compose.foundation.Text
import androidx.compose.foundation.layout.offset
import androidx.compose.foundation.layout.preferredHeight
import androidx.compose.material.ExtendedFloatingActionButton
import androidx.compose.material.Icon
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Text
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.ArrowDownward
import androidx.compose.runtime.Composable
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,10 @@ package com.example.compose.jetchat.conversation
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.animation.ExperimentalAnimationApi
import androidx.compose.animation.fadeIn
import androidx.compose.foundation.AmbientContentColor
import androidx.compose.foundation.AmbientTextStyle
import androidx.compose.foundation.BaseTextField
import androidx.compose.foundation.BorderStroke
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.ScrollState
import androidx.compose.foundation.ScrollableRow
import androidx.compose.foundation.Text
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
Expand All @@ -36,22 +32,26 @@ import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.paddingFrom
import androidx.compose.foundation.layout.preferredHeight
import androidx.compose.foundation.layout.preferredSize
import androidx.compose.foundation.layout.relativePaddingFrom
import androidx.compose.foundation.layout.sizeIn
import androidx.compose.foundation.layout.wrapContentHeight
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.text.FirstBaseline
import androidx.compose.material.AmbientEmphasisLevels
import androidx.compose.foundation.text.BasicTextField
import androidx.compose.foundation.text.KeyboardOptions
import androidx.compose.material.AmbientContentAlpha
import androidx.compose.material.AmbientContentColor
import androidx.compose.material.AmbientTextStyle
import androidx.compose.material.Button
import androidx.compose.material.ButtonConstants
import androidx.compose.material.ContentAlpha
import androidx.compose.material.Divider
import androidx.compose.material.Icon
import androidx.compose.material.IconButton
import androidx.compose.material.MaterialTheme
import androidx.compose.material.ProvideEmphasis
import androidx.compose.material.Surface
import androidx.compose.material.Text
import androidx.compose.material.TextButton
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.AlternateEmail
Expand All @@ -60,6 +60,7 @@ import androidx.compose.material.icons.outlined.InsertPhoto
import androidx.compose.material.icons.outlined.Mood
import androidx.compose.material.icons.outlined.Place
import androidx.compose.runtime.Composable
import androidx.compose.runtime.Providers
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.onCommit
Expand All @@ -76,6 +77,7 @@ import androidx.compose.ui.focusObserver
import androidx.compose.ui.focusRequester
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.vector.VectorAsset
import androidx.compose.ui.layout.FirstBaseline
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.semantics.SemanticsPropertyKey
import androidx.compose.ui.semantics.SemanticsPropertyReceiver
Expand Down Expand Up @@ -225,16 +227,14 @@ fun FunctionalityNotAvailablePanel() {
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally,
) {
ProvideEmphasis(emphasis = AmbientEmphasisLevels.current.high) {
Text(
text = stringResource(id = R.string.not_available),
style = MaterialTheme.typography.subtitle1
)
}
ProvideEmphasis(emphasis = AmbientEmphasisLevels.current.medium) {
Text(
text = stringResource(id = R.string.not_available),
style = MaterialTheme.typography.subtitle1
)
Providers(AmbientContentAlpha provides ContentAlpha.medium) {
Text(
text = stringResource(id = R.string.not_available_subtitle),
modifier = Modifier.relativePaddingFrom(FirstBaseline, before = 32.dp),
modifier = Modifier.paddingFrom(FirstBaseline, before = 32.dp),
style = MaterialTheme.typography.body2
)
}
Expand Down Expand Up @@ -308,7 +308,7 @@ private fun UserInputSelector(
Spacer(modifier = Modifier.weight(1f))

val disabledContentColor =
AmbientEmphasisLevels.current.disabled.applyEmphasis(MaterialTheme.colors.onSurface)
MaterialTheme.colors.onSurface.copy(alpha = ContentAlpha.disabled)

val buttonColors = ButtonConstants.defaultButtonColors(
disabledBackgroundColor = MaterialTheme.colors.surface,
Expand Down Expand Up @@ -346,7 +346,7 @@ private fun InputSelectorButton(
onClick = onClick,
modifier = Modifier.semantics { accessibilityLabel = description }
) {
ProvideEmphasis(emphasis = AmbientEmphasisLevels.current.medium) {
Providers(AmbientContentAlpha provides ContentAlpha.medium) {
val tint = if (selected) MaterialTheme.colors.primary else AmbientContentColor.current
Icon(
icon,
Expand Down Expand Up @@ -401,9 +401,9 @@ private fun UserInputText(
modifier = Modifier.preferredHeight(48.dp).weight(1f).align(Alignment.Bottom)
) {
var lastFocusState by remember { mutableStateOf(FocusState.Inactive) }
BaseTextField(
BasicTextField(
value = textFieldValue,
onValueChange = { onTextChanged(it) },
onValueChange = { onTextChanged(textFieldValue) },
modifier = Modifier
.fillMaxWidth()
.padding(start = 16.dp)
Expand All @@ -414,13 +414,16 @@ private fun UserInputText(
}
lastFocusState = state
},
keyboardType = keyboardType,
imeAction = ImeAction.Send,
onTextInputStarted = { controller -> keyboardController = controller }
keyboardOptions = KeyboardOptions(
keyboardType = keyboardType,
imeAction = ImeAction.Send
),
maxLines = 1,
cursorColor = AmbientContentColor.current
)

val disableContentColor =
AmbientEmphasisLevels.current.disabled.applyEmphasis(MaterialTheme.colors.onSurface)
MaterialTheme.colors.onSurface.copy(alpha = ContentAlpha.disabled)
if (textFieldValue.text.isEmpty() && !focusState) {
Text(
modifier = Modifier
Expand Down
Loading