package com.schoolapp.cleverclass import android.content.Context import android.content.Intent import android.graphics.drawable.Icon import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.ArrowBack import androidx.compose.material.icons.outlined.Edit import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.material3.TopAppBar import androidx.compose.material3.TopAppBarDefaults import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.unit.dp import androidx.core.content.ContextCompat.startActivity import com.schoolapp.cleverclass.LessonStoreManager.getLessons import com.schoolapp.cleverclass.ui.theme.CleverClassTheme import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch private val listOfDays = listOf("Mo", "Di", "Mi", "Do", "Fr") private val lessonGrabberIndex = 0 class StundenplanActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val sharedPreferences = this.getSharedPreferences("TimeTable", Context.MODE_PRIVATE) val setupDone = sharedPreferences.getBoolean("setupDone", false) setContent { CleverClassTheme { Surface( modifier = Modifier.fillMaxSize(), color = MaterialTheme.colorScheme.background ) { if (!setupDone) { val intent = Intent(this@StundenplanActivity, TimeTableSetupActivity::class.java).apply { putExtra(TimeTableSetupActivity.TYPE_KEY, "TimeSetup") } startActivity(intent) } StundenplanContent(activity = this) } } } } } // Content of Stundenplan @OptIn(ExperimentalMaterial3Api::class) @Composable fun StundenplanContent(activity: ComponentActivity){ Column() { TopAppBar( colors = TopAppBarDefaults.centerAlignedTopAppBarColors(MaterialTheme.colorScheme.primaryContainer), title = { Text(text = "Stundenplan", style = MaterialTheme.typography.headlineSmall, color = MaterialTheme.colorScheme.onPrimaryContainer )}, navigationIcon = { IconButton(onClick = { activity.finish() }) { Icon( imageVector = Icons.Filled.ArrowBack, contentDescription = null, modifier = Modifier.size(28.dp), tint = MaterialTheme.colorScheme.onPrimaryContainer ) } }, actions ={ IconButton(onClick = { val intent = Intent(activity, TimeTableSetupActivity::class.java).apply { putExtra(TimeTableSetupActivity.TYPE_KEY, "TimeSetup") } startActivity(activity, intent, null) }) { Icon( imageVector = Icons.Outlined.Edit, contentDescription = null, modifier = Modifier.size(28.dp), tint = MaterialTheme.colorScheme.onPrimaryContainer ) } }, modifier = Modifier.fillMaxWidth() ) Column() { listOfDays.forEach() {currentDay -> Day(currentDay) } } } } data class LessonData( var subject: String, var teacher: String, var room: String ) @Composable fun Day(day: String) { var lessons = emptyList() val context = LocalContext.current Column { LaunchedEffect(lessons, context) { getLessons(context, day).collect { savedLessons -> lessons = savedLessons.toMutableList() } } lessons.forEach() {lessonData -> Lesson(subject = lessonData.subject, teacher = lessonData.teacher, room = lessonData.room) } } } @Composable fun Lesson(subject: String, teacher: String, room: String) { Box(modifier = Modifier .size(200.dp, 100.dp) .padding(3.dp) ) { Text( modifier = Modifier.align(Alignment.Center), text = "$subject\n@$room\n/w$teacher") } } fun currentDay(): String { return "hi" }