Add NotenButton

Update Main
This commit is contained in:
BuildTools
2024-03-25 11:59:24 +01:00
parent fedf52c38e
commit e5779cea19
3 changed files with 142 additions and 15 deletions

View File

@@ -10,7 +10,7 @@ android {
defaultConfig {
applicationId = "com.schoolapp.cleverclass"
minSdk = 26
targetSdk = 33
targetSdk = 34
versionCode = 1
versionName = "1.0"

View File

@@ -3,6 +3,8 @@ package com.schoolapp.cleverclass
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.BorderStroke
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
@@ -12,11 +14,18 @@ import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Add
import androidx.compose.material.icons.filled.ArrowBack
import androidx.compose.material.icons.filled.Close
import androidx.compose.material.icons.filled.KeyboardArrowDown
import androidx.compose.material.icons.filled.KeyboardArrowUp
import androidx.compose.material3.BottomAppBar
import androidx.compose.material3.Button
import androidx.compose.material3.DropdownMenu
import androidx.compose.material3.DropdownMenuItem
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.FloatingActionButton
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.MaterialTheme
@@ -26,10 +35,17 @@ import androidx.compose.material3.Text
import androidx.compose.material3.TopAppBar
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
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.Companion.CenterVertically
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import com.schoolapp.cleverclass.ui.theme.CleverClassTheme
import com.schoolapp.cleverclass.ui.theme.TextOnColouredButton
class FachActivity : ComponentActivity() {
companion object {
@@ -96,20 +112,133 @@ fun FachContent(activity: ComponentActivity, name : String){
Spacer(modifier = Modifier.width(16.dp))
}
}
}
},
floatingActionButton = {
FloatingActionButton(onClick = { /*TODO*/ },
shape = RoundedCornerShape(40)
) {
Icon(imageVector = Icons.Filled.Add,
contentDescription = null,
modifier = Modifier.size(32.dp))
}}
) {innerPadding ->
Column(modifier = Modifier
.fillMaxWidth()
.padding(innerPadding))
{
NotenPrefab()
NotenPrefab()
}
}
}
@Preview
@Composable
fun NotenPrefab(){
Button(onClick = { /*TODO*/ }) {
Text(text = "hehe")
val color = Color(0xFFB2FF59)
var typeExpanded by remember {
mutableStateOf(false)
}
}
var gradeExpanded by remember {
mutableStateOf(false)
}
var weightExpanded by remember {
mutableStateOf(false)
}
// Background
Surface(
shape = RoundedCornerShape(20),
color = color,
modifier = Modifier
.fillMaxWidth()
.height(128.dp)
.padding(start = 16.dp, end = 16.dp, top = 16.dp)
) {
// Content
Column(modifier = Modifier.padding(16.dp)) {
Row {
// Type
Surface(
shape = RoundedCornerShape(10),
color = color,
border = BorderStroke(2.dp, TextOnColouredButton),
modifier = Modifier
.size(width = 128.dp, height = 32.dp)
.clickable { typeExpanded = !typeExpanded }
) {
Row(verticalAlignment = CenterVertically,
modifier = Modifier.padding(4.dp)) {
Text(text = "Typ", color = TextOnColouredButton, style = MaterialTheme.typography.labelMedium)
DropdownMenu(expanded = typeExpanded, onDismissRequest = { typeExpanded = false }) {
DropdownMenuItem(text = { Text(text = "Test") }, onClick = { /*TODO*/ })
}
Spacer(modifier = Modifier.weight(1f))
Icon(imageVector = if (typeExpanded) Icons.Filled.KeyboardArrowUp else Icons.Filled.KeyboardArrowDown,
contentDescription = null,
tint = TextOnColouredButton)
}
}
// Delete
Spacer(modifier = Modifier.weight(1f))
Icon(
imageVector = Icons.Filled.Close,
contentDescription = null,
tint = TextOnColouredButton,
modifier = Modifier
.size(28.dp)
.clickable { /*TODO*/ }
)
}
Spacer(modifier = Modifier.weight(1f))
Row (verticalAlignment = CenterVertically) {
// Grade
Text(text = "Note:", color = TextOnColouredButton, style = MaterialTheme.typography.labelMedium)
Spacer(modifier = Modifier.width(8.dp))
Surface(
shape = RoundedCornerShape(10),
color = color,
border = BorderStroke(2.dp, TextOnColouredButton),
modifier = Modifier
.size(width = 48.dp, height = 32.dp)
.clickable { gradeExpanded = !gradeExpanded }
) {
Row(verticalAlignment = CenterVertically,
modifier = Modifier.padding(4.dp)) {
Text(text = "1", color = TextOnColouredButton, style = MaterialTheme.typography.labelMedium)
DropdownMenu(expanded = gradeExpanded, onDismissRequest = { gradeExpanded = false }) {
DropdownMenuItem(text = { Text(text = "Test") }, onClick = { /*TODO*/ })
}
Spacer(modifier = Modifier.weight(1f))
Icon(imageVector = if (gradeExpanded) Icons.Filled.KeyboardArrowUp else Icons.Filled.KeyboardArrowDown, contentDescription = null, tint = TextOnColouredButton)
}
}
// Weight
Spacer(modifier = Modifier.width(16.dp))
Text(text = "Gewichtung:", color = TextOnColouredButton, style = MaterialTheme.typography.labelMedium)
Spacer(modifier = Modifier.width(8.dp))
Surface(
shape = RoundedCornerShape(10),
color = color,
border = BorderStroke(2.dp, TextOnColouredButton),
modifier = Modifier
.size(width = 64.dp, height = 32.dp)
.clickable { weightExpanded = !weightExpanded }
) {
Row(verticalAlignment = CenterVertically,
modifier = Modifier.padding(4.dp)) {
Text(text = "1x", color = TextOnColouredButton, style = MaterialTheme.typography.labelMedium)
DropdownMenu(expanded = weightExpanded, onDismissRequest = { weightExpanded = false }) {
DropdownMenuItem(text = { Text(text = "Test") }, onClick = { /*TODO*/ })
}
Spacer(modifier = Modifier.weight(1f))
Icon(imageVector = if (weightExpanded) Icons.Filled.KeyboardArrowUp else Icons.Filled.KeyboardArrowDown, contentDescription = null, tint = TextOnColouredButton)
}
}
}
}
}
}

View File

@@ -35,7 +35,6 @@ import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.unit.dp
import com.schoolapp.cleverclass.ui.theme.CleverClassTheme
import com.schoolapp.cleverclass.ui.theme.TextOnColouredButton
@@ -47,7 +46,7 @@ class MainActivity : ComponentActivity() {
CleverClassTheme {
Surface(modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background) {
MainContent()
MainContent(activity = this)
}
}
}
@@ -58,9 +57,8 @@ class MainActivity : ComponentActivity() {
// Content of Main-screen
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun MainContent(){
val context = LocalContext.current
val sharedPreferences = context.getSharedPreferences("Settings", Context.MODE_PRIVATE)
fun MainContent(activity: ComponentActivity){
val sharedPreferences = activity.getSharedPreferences("Settings", Context.MODE_PRIVATE)
Column{
TopAppBar(
@@ -72,7 +70,7 @@ fun MainContent(){
},
actions = {
IconButton(
onClick = { switchToActivity(context, SettingsActivity::class.java) }) {
onClick = { switchToActivity(activity, SettingsActivity::class.java) }) {
Icon(
imageVector = Icons.Filled.Settings,
contentDescription = null,
@@ -83,9 +81,9 @@ fun MainContent(){
)
Column(modifier = Modifier.verticalScroll(rememberScrollState())) {
MainButton(onClick = { switchToActivity(context, StundenplanActivity::class.java) }, color = Color(0xFFFF4081), text = "Stundenplan", sharedPreferences)
MainButton(onClick = { switchToActivity(context, NotenActivity::class.java) }, color = Color(0xFFFFAB40), text = "Noten", sharedPreferences)
MainButton(onClick = { switchToActivity(context, PSEActivity::class.java) }, color = Color(0xFF536DFE), text = "Periodensystem", sharedPreferences)
MainButton(onClick = { switchToActivity(activity, StundenplanActivity::class.java) }, color = Color(0xFFFF4081), text = "Stundenplan", sharedPreferences)
MainButton(onClick = { switchToActivity(activity, NotenActivity::class.java) }, color = Color(0xFFFFAB40), text = "Noten", sharedPreferences)
MainButton(onClick = { switchToActivity(activity, PSEActivity::class.java) }, color = Color(0xFF536DFE), text = "Periodensystem", sharedPreferences)
MainButton(onClick = { /*TODO: Mebis activity*/ }, color = Color(0xFFE040FB), text = "Mebis", sharedPreferences)
MainButton(onClick = { /*TODO: DSBmobile activity*/ }, color = Color(0xFFFF6E40), text = "DSBmobile", sharedPreferences)
}