123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- package com.vpn.fastestvpnservice.screensTV
- import android.content.Context
- import androidx.compose.foundation.background
- import androidx.compose.foundation.layout.Box
- import androidx.compose.foundation.layout.BoxScope
- import androidx.compose.foundation.layout.Column
- import androidx.compose.foundation.layout.Spacer
- import androidx.compose.foundation.layout.fillMaxHeight
- 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.lazy.LazyColumn
- import androidx.compose.foundation.lazy.items
- import androidx.compose.material.Surface
- import androidx.compose.material.Text
- import androidx.compose.material3.MaterialTheme
- import androidx.compose.runtime.Composable
- import androidx.compose.runtime.LaunchedEffect
- import androidx.compose.runtime.livedata.observeAsState
- import androidx.compose.ui.Alignment
- import androidx.compose.ui.Modifier
- import androidx.compose.ui.platform.LocalContext
- import androidx.compose.ui.res.colorResource
- import androidx.compose.ui.text.style.TextAlign
- import androidx.compose.ui.unit.dp
- import androidx.lifecycle.viewmodel.compose.viewModel
- import androidx.navigation.NavHostController
- import com.vpn.fastestvpnservice.R
- import com.vpn.fastestvpnservice.customItems.NotificationItemTV
- import com.vpn.fastestvpnservice.ui.theme.customTypography2
- import com.vpn.fastestvpnservice.viewmodels.NotificationViewModel
- @Composable
- fun NotificationsTV(navHostController: NavHostController) {
- val notificationViewModel: NotificationViewModel = viewModel()
- val context = LocalContext.current
- Box(
- modifier = Modifier
- .fillMaxSize()
- .background(
- color = MaterialTheme.colorScheme.background
- )
- ) {
- LaunchedEffect(key1 = Unit) {
- notificationViewModel.getNotifications()
- }
- HeaderRowNSTV(navHostController = navHostController, context)
- Column(
- modifier = Modifier
- .padding(top = 60.dp)
- .fillMaxSize()
- ) {
- val notifications = notificationViewModel.liveDataNotification.observeAsState().value
- Spacer(modifier = Modifier.height(10.dp))
- LazyColumn() {
- notifications?.data?.let {
- items(it) { item ->
- NotificationItemTV(item = item)
- }
- }
- }
- }
- }
- }
- @Composable
- fun BoxScope.HeaderRowNSTV(navHostController: NavHostController, context: Context) {
- Surface(
- modifier = Modifier
- .padding(start = 14.dp, top = 16.dp)
- .height(32.dp)
- .align(Alignment.TopStart),
- color = colorResource(id = R.color.transparent)
- ) {
- Text(text = context.getString(R.string.notifcation),
- color = MaterialTheme.colorScheme.primary,
- style = MaterialTheme.typography.bodyMedium,
- modifier = Modifier.fillMaxHeight()
- )
- }
- }
|