Skip to content

Commit 334d1e3

Browse files
authored
Merge branch 'main' into feature/password
2 parents 3a6763f + eb6b518 commit 334d1e3

File tree

2 files changed

+57
-4
lines changed

2 files changed

+57
-4
lines changed

compose/snippets/src/main/java/com/example/compose/snippets/lists/LazyListSnippets.kt

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import androidx.compose.foundation.layout.Row
3333
import androidx.compose.foundation.layout.fillMaxSize
3434
import androidx.compose.foundation.layout.fillMaxWidth
3535
import androidx.compose.foundation.layout.height
36+
import androidx.compose.foundation.layout.padding
3637
import androidx.compose.foundation.layout.size
3738
import androidx.compose.foundation.layout.width
3839
import androidx.compose.foundation.layout.wrapContentHeight
@@ -52,6 +53,8 @@ import androidx.compose.foundation.lazy.staggeredgrid.items
5253
import androidx.compose.foundation.rememberScrollState
5354
import androidx.compose.foundation.verticalScroll
5455
import androidx.compose.material3.Button
56+
import androidx.compose.material3.Card
57+
import androidx.compose.material3.CircularProgressIndicator
5558
import androidx.compose.material3.Text
5659
import androidx.compose.runtime.Composable
5760
import androidx.compose.runtime.LaunchedEffect
@@ -78,6 +81,7 @@ import kotlinx.coroutines.flow.distinctUntilChanged
7881
import kotlinx.coroutines.flow.filter
7982
import kotlinx.coroutines.flow.map
8083
import kotlinx.coroutines.launch
84+
import org.w3c.dom.Text
8185

8286
private object ListsSnippetsColumn {
8387
// [START android_compose_layouts_list_column]
@@ -684,7 +688,7 @@ fun LazyStaggeredGridSnippetFixed() {
684688
)
685689
// [END android_compose_layouts_lazy_staggered_grid_fixed]
686690
}
687-
private class Message(val id: Long)
691+
class Message(val id: Long, val sender: String, val text: String)
688692
private class Item
689693

690694
private data class Contact(val firstName: String)
@@ -752,6 +756,55 @@ private val randomSizedPhotos = listOf(
752756
randomSampleImageUrl(width = 1600, height = 900),
753757
randomSampleImageUrl(width = 500, height = 500),
754758
)
759+
// [START android_compose_layouts_lazily_load_list]
760+
@Composable
761+
fun MessageList(
762+
modifier: Modifier,
763+
pager: Pager<Int, Message>
764+
) {
765+
val lazyPagingItems = pager.flow.collectAsLazyPagingItems()
766+
767+
LazyColumn {
768+
items(
769+
lazyPagingItems.itemCount,
770+
key = lazyPagingItems.itemKey { it.id }
771+
) { index ->
772+
val message = lazyPagingItems[index]
773+
if (message != null) {
774+
MessageRow(message)
775+
} else {
776+
MessagePlaceholder()
777+
}
778+
}
779+
}
780+
@Composable
781+
fun MessagePlaceholder(modifier: Modifier) {
782+
Box(
783+
Modifier
784+
.fillMaxWidth()
785+
.height(48.dp)
786+
) {
787+
CircularProgressIndicator()
788+
}
789+
}
790+
791+
@Composable
792+
fun MessageRow(
793+
modifier: Modifier,
794+
message: Message
795+
) {
796+
Card(modifier = Modifier.padding(8.dp)) {
797+
Column(
798+
modifier = Modifier.padding(8.dp),
799+
verticalArrangement = Arrangement.Center
800+
) {
801+
Text(message.sender)
802+
Text(message.text)
803+
}
804+
}
805+
}
806+
}
807+
// [END android_compose_layouts_lazily_load_list]
755808

756809
// [START android_compose_lists_snap_scroll_button]
757810
@Composable

compose/snippets/src/main/java/com/example/compose/snippets/text/TextSnippets.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -864,8 +864,8 @@ private val firaSansFamily = FontFamily(typeface = Typeface.DEFAULT)
864864
val LightBlue = Color(0xFF0066FF)
865865
val Purple = Color(0xFF800080)
866866

867-
// [START android_compose_text_auto_format_phone_number_showhidepassword]
868-
@Preview
867+
868+
// [START android_compose_text_showhidepassword]
869869
@Composable
870870
fun PasswordTextField() {
871871
val state = remember { TextFieldState() }
@@ -908,7 +908,7 @@ fun PasswordTextField() {
908908
}
909909
)
910910
}
911-
// [END android_compose_text_auto_format_phone_number_showhidepassword]
911+
// [END android_compose_text_showhidepassword]
912912

913913
// [START android_compose_text_auto_format_phone_number_validatetext]
914914
class EmailViewModel : ViewModel() {

0 commit comments

Comments
 (0)