NotificationScreenTV.kt 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. package com.vpn.fastestvpnservice.screensTV
  2. import android.content.Context
  3. import androidx.compose.foundation.background
  4. import androidx.compose.foundation.layout.Box
  5. import androidx.compose.foundation.layout.BoxScope
  6. import androidx.compose.foundation.layout.Column
  7. import androidx.compose.foundation.layout.Spacer
  8. import androidx.compose.foundation.layout.fillMaxHeight
  9. import androidx.compose.foundation.layout.fillMaxSize
  10. import androidx.compose.foundation.layout.fillMaxWidth
  11. import androidx.compose.foundation.layout.height
  12. import androidx.compose.foundation.layout.padding
  13. import androidx.compose.foundation.lazy.LazyColumn
  14. import androidx.compose.foundation.lazy.items
  15. import androidx.compose.material.Surface
  16. import androidx.compose.material.Text
  17. import androidx.compose.material3.MaterialTheme
  18. import androidx.compose.runtime.Composable
  19. import androidx.compose.runtime.LaunchedEffect
  20. import androidx.compose.runtime.livedata.observeAsState
  21. import androidx.compose.ui.Alignment
  22. import androidx.compose.ui.Modifier
  23. import androidx.compose.ui.platform.LocalContext
  24. import androidx.compose.ui.res.colorResource
  25. import androidx.compose.ui.text.style.TextAlign
  26. import androidx.compose.ui.unit.dp
  27. import androidx.lifecycle.viewmodel.compose.viewModel
  28. import androidx.navigation.NavHostController
  29. import com.vpn.fastestvpnservice.R
  30. import com.vpn.fastestvpnservice.customItems.NotificationItemTV
  31. import com.vpn.fastestvpnservice.ui.theme.customTypography2
  32. import com.vpn.fastestvpnservice.viewmodels.NotificationViewModel
  33. @Composable
  34. fun NotificationsTV(navHostController: NavHostController) {
  35. val notificationViewModel: NotificationViewModel = viewModel()
  36. val context = LocalContext.current
  37. Box(
  38. modifier = Modifier
  39. .fillMaxSize()
  40. .background(
  41. color = MaterialTheme.colorScheme.background
  42. )
  43. ) {
  44. LaunchedEffect(key1 = Unit) {
  45. notificationViewModel.getNotifications()
  46. }
  47. HeaderRowNSTV(navHostController = navHostController, context)
  48. Column(
  49. modifier = Modifier
  50. .padding(top = 60.dp)
  51. .fillMaxSize()
  52. ) {
  53. val notifications = notificationViewModel.liveDataNotification.observeAsState().value
  54. // notifications?.heading?.let {
  55. // Text(
  56. // text = it,
  57. // color = MaterialTheme.colorScheme.primary,
  58. // style = MaterialTheme.typography.customTypography2.bodySmall,
  59. // textAlign = TextAlign.Start,
  60. // modifier = Modifier
  61. // .padding(start = 16.dp, top = 5.dp, end = 4.dp)
  62. // .fillMaxWidth(),
  63. // )
  64. // }
  65. Spacer(modifier = Modifier.height(10.dp))
  66. LazyColumn() {
  67. notifications?.data?.let {
  68. items(it) { item ->
  69. NotificationItemTV(item = item)
  70. }
  71. }
  72. }
  73. }
  74. }
  75. }
  76. @Composable
  77. fun BoxScope.HeaderRowNSTV(navHostController: NavHostController, context: Context) {
  78. // IconButton(
  79. // onClick = {
  80. // navHostController.popBackStack()
  81. //// navHostController.navigate(BottomBarScreen.Help.route)
  82. // },
  83. // modifier = Modifier
  84. // .align(Alignment.TopStart)
  85. // .padding(top = 50.dp)
  86. // .padding(start = 16.dp)
  87. // .size(30.dp, 32.dp)
  88. // ) {
  89. // Icon(
  90. // painter = painterResource(id = R.drawable.backarrow3x),
  91. // contentDescription = "Arrow-Back",
  92. // tint = MaterialTheme.colorScheme.primary,
  93. // modifier = Modifier.size(18.dp, 12.dp)
  94. // )
  95. // }
  96. Surface(
  97. modifier = Modifier
  98. .padding(start = 14.dp, top = 16.dp)
  99. .height(32.dp)
  100. .align(Alignment.TopStart),
  101. color = colorResource(id = R.color.transparent)
  102. ) {
  103. Text(text = context.getString(R.string.notifcation),
  104. color = MaterialTheme.colorScheme.primary,
  105. style = MaterialTheme.typography.bodyMedium,
  106. modifier = Modifier.fillMaxHeight()
  107. )
  108. }
  109. }