Advertisement
AnatolyZadvernyak

Untitled

Aug 6th, 2021
29
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.57 KB | None | 0 0
  1. package com.example.composeapplication.ui
  2.  
  3. import android.os.Bundle
  4. import android.util.Log
  5. import androidx.activity.ComponentActivity
  6. import androidx.activity.compose.setContent
  7. import androidx.compose.foundation.Image
  8. import androidx.compose.foundation.layout.*
  9. import androidx.compose.foundation.lazy.LazyColumn
  10. import androidx.compose.foundation.lazy.items
  11. import androidx.compose.foundation.shape.CircleShape
  12. import androidx.compose.material.Text
  13. import androidx.compose.runtime.Composable
  14. import androidx.compose.ui.Modifier
  15. import androidx.compose.ui.draw.clip
  16. import androidx.compose.ui.res.painterResource
  17. import androidx.compose.ui.unit.dp
  18. import com.example.composeapplication.R
  19. import com.example.composeapplication.data.SensorView
  20. import com.example.composeapplication.data.UnitView
  21. import com.example.composeapplication.ui.theme.ComposeApplicationTheme
  22. import com.example.composeapplication.viewmodel.MainViewModel
  23. import org.koin.androidx.viewmodel.ext.android.viewModel
  24.  
  25. class MainActivity : ComponentActivity() {
  26.  
  27. private val viewModel by viewModel<MainViewModel>()
  28.  
  29. override fun onCreate(savedInstanceState: Bundle?) {
  30. super.onCreate(savedInstanceState)
  31.  
  32. viewModel.sensorInfoListLiveData.observe(this) { list ->
  33. Log.d("blabla", "list -> $list")
  34. }
  35. viewModel.sensorInfoListLiveData.observe(this) { list ->
  36. setContent {
  37. ComposeApplicationTheme {
  38. SensorDataList(list)
  39. }
  40. }
  41. }
  42. }
  43. }
  44.  
  45. @Composable
  46. fun SensorDataList(sensorData: List<UnitView>) {
  47. LazyColumn {
  48. items(sensorData) { sensor ->
  49. SensorCard(sensor)
  50. }
  51. }
  52. }
  53.  
  54. @Composable
  55. fun SensorCard(sensor: UnitView) {
  56. // Add padding around our message
  57. Row(modifier = Modifier.padding(all = 8.dp)) {
  58. Image(
  59. painter = painterResource(R.drawable.ic_baseline_air_24),
  60. contentDescription = "Contact profile picture",
  61. modifier = Modifier
  62. // Set image size to 40 dp
  63. .size(40.dp)
  64. // Clip image to be shaped as a circle
  65. .clip(CircleShape)
  66. )
  67.  
  68. // Add a horizontal space between the image and the column
  69. Spacer(modifier = Modifier.width(8.dp))
  70.  
  71. Column {
  72. Text(text = sensor.name)
  73. // Add a vertical space between the author and message texts
  74. Spacer(modifier = Modifier.height(4.dp))
  75. Text(text = (sensor as SensorView).name)
  76. }
  77. }
  78. }
  79.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement