Add README

Update some stuff
This commit is contained in:
BuildTools
2024-06-04 16:19:11 +02:00
parent e9ca2d8704
commit 718fe65a75
4 changed files with 62 additions and 20 deletions

View File

@@ -1,2 +1,32 @@
# CleverClass # CleverClass
CleverClass ist eine Android-App, die Schülern hilft, ihre Schulnoten zu verwalten, ihren Durchschnitt zu berechnen, den Vertretungsplan von DSBmobile einzusehen, den Stundenplan zu speichern und anzuzeigen sowie ein Periodensystem zu nutzen.
## Funktionen und Verwendung
- **Notenverwaltung:** Trage deine Schulnoten ein und berechne deinen Durchschnitt. Perfekt, um alle Noten aus der Schule übersichtlich zu speichern.
- **Vertretungsplan:** Rufe den aktuellen Vertretungsplan von DSBmobile direkt in der App auf.
- **Stundenplan:** Trage deinen Stundenplan ein, speichere und verwalte ihn in der App, um immer den Überblick zu behalten.
- **Periodensystem:** Nutze das integrierte Periodensystem, um schnell Informationen zu chemischen Elementen nachzuschlagen.
## Installation
CleverClass kann einfach über den Play Store installiert werden oder durch das Herunterladen der APK-Datei:
Play Store:
- Öffne den Google Play Store auf deinem Android-Gerät
- Suche nach "CleverClass"
- Tippe auf "Installieren"
APK-Datei:
- Lade die APK-Datei von der [Website](https://google.com/) herunter
- Öffne die heruntergeladene APK-Datei auf deinem Android-Gerät
- Folge den Anweisungen auf dem Bildschirm, um die Installation abzuschließen
## Anforderungen
Betriebssystem: Android
## Autoren
- Paul Posch
- Matthias Meyer
- Jakub Szarko
- Emilian Bührer
## Lizenz
Dieses Projekt steht unter der [GNU General Public License](LICENSE) Version 3, 29 June 2007.
## Sonstiges
Dieses Projekt ist als Schulprojekt inerhalb von 3 Monaten entstanden.

View File

@@ -89,7 +89,6 @@ class FachActivity : ComponentActivity() {
CoroutineScope(Dispatchers.IO).launch { CoroutineScope(Dispatchers.IO).launch {
getGrades(this@FachActivity, name).collect { savedGrades -> getGrades(this@FachActivity, name).collect { savedGrades ->
grades = savedGrades.toMutableList() grades = savedGrades.toMutableList()
println()
} }
} }
@@ -513,7 +512,7 @@ fun GradePrefab(
@Composable @Composable
fun Item(name : String, onItemClick: (String) -> Unit){ fun Item(name : String, onItemClick: (String) -> Unit){
DropdownMenuItem( DropdownMenuItem(
text = { Text(text = name) }, text = { Text(text = name, style = MaterialTheme.typography.labelMedium) },
onClick = { onItemClick(name) } onClick = { onItemClick(name) }
) )
} }

View File

@@ -114,8 +114,11 @@ fun NotenContent(activity: ComponentActivity){
val editor = sharedPreferences.edit() val editor = sharedPreferences.edit()
var allAverage by remember { var allAverage by remember {
mutableStateOf(calculateAllAverage(loadAllAverages(sharedPreferences))) mutableStateOf(0f)
} }
allAverage = calculateAllAverage(sharedPreferences)
var showDeleteConfirmation by remember { var showDeleteConfirmation by remember {
mutableStateOf(false) mutableStateOf(false)
} }
@@ -189,7 +192,7 @@ fun NotenContent(activity: ComponentActivity){
saWeight = saWeights[i], saWeight = saWeights[i],
activity = activity, activity = activity,
sharedPreferences = sharedPreferences, sharedPreferences = sharedPreferences,
onAvgChange = { allAverage = calculateAllAverage(loadAllAverages(sharedPreferences)) } onAvgChange = { allAverage = calculateAllAverage(sharedPreferences) }
) )
} }
@@ -201,7 +204,7 @@ fun NotenContent(activity: ComponentActivity){
saWeight = saWeights[i], saWeight = saWeights[i],
activity = activity, activity = activity,
sharedPreferences = sharedPreferences, sharedPreferences = sharedPreferences,
onAvgChange = { allAverage = calculateAllAverage(loadAllAverages(sharedPreferences)) } onAvgChange = { allAverage = calculateAllAverage(sharedPreferences) }
) )
} }
@@ -213,7 +216,7 @@ fun NotenContent(activity: ComponentActivity){
saWeight = saWeights[i], saWeight = saWeights[i],
activity = activity, activity = activity,
sharedPreferences = sharedPreferences, sharedPreferences = sharedPreferences,
onAvgChange = { allAverage = calculateAllAverage(loadAllAverages(sharedPreferences)) } onAvgChange = { allAverage = calculateAllAverage(sharedPreferences) }
) )
} }
@@ -225,7 +228,7 @@ fun NotenContent(activity: ComponentActivity){
saWeight = saWeights[i], saWeight = saWeights[i],
activity = activity, activity = activity,
sharedPreferences = sharedPreferences, sharedPreferences = sharedPreferences,
onAvgChange = { allAverage = calculateAllAverage(loadAllAverages(sharedPreferences)) } onAvgChange = { allAverage = calculateAllAverage(sharedPreferences) }
) )
} }
@@ -237,7 +240,7 @@ fun NotenContent(activity: ComponentActivity){
saWeight = saWeights[i], saWeight = saWeights[i],
activity = activity, activity = activity,
sharedPreferences = sharedPreferences, sharedPreferences = sharedPreferences,
onAvgChange = { allAverage = calculateAllAverage(loadAllAverages(sharedPreferences)) } onAvgChange = { allAverage = calculateAllAverage(sharedPreferences) }
) )
} }
@@ -343,9 +346,10 @@ fun GroopTitle(name: String, top: Boolean){
Spacer(modifier = Modifier.height(12.dp)) Spacer(modifier = Modifier.height(12.dp))
} }
fun calculateAllAverage(avgs: List<Float>): Float{ fun calculateAllAverage(sharedPreferences: SharedPreferences): Float{
var total = 0.0f var total = 0.0f
var number = 0 var number = 0
val avgs = loadAllAverages(sharedPreferences)
avgs.forEach{ avg -> avgs.forEach{ avg ->
if (avg != 0.0f && !avg.isNaN()){ if (avg != 0.0f && !avg.isNaN()){
@@ -353,6 +357,7 @@ fun calculateAllAverage(avgs: List<Float>): Float{
number += 1 number += 1
} }
} }
return (total / number) return (total / number)
} }

View File

@@ -19,6 +19,7 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.width
import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.layout.wrapContentHeight
import androidx.compose.foundation.layout.wrapContentSize
import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
@@ -129,17 +130,24 @@ fun SettingsContent(activity: ComponentActivity) {
horizontalAlignment = Alignment.CenterHorizontally horizontalAlignment = Alignment.CenterHorizontally
) { ) {
Divider() Divider()
Spacer(modifier = Modifier.height(16.dp)) Spacer(modifier = Modifier.height(8.dp))
Text( Box(
text = "About", contentAlignment = Alignment.Center,
style = MaterialTheme.typography.bodySmall, modifier = Modifier
color = MaterialTheme.colorScheme.onBackground, .wrapContentSize()
modifier = Modifier.clickable { .clickable {
val intent = Intent(activity, AboutActivity::class.java) val intent = Intent(activity, AboutActivity::class.java)
activity.startActivity(intent) activity.startActivity(intent)
} }
) ) {
Spacer(modifier = Modifier.height(16.dp)) Text(
text = "About",
style = MaterialTheme.typography.bodySmall,
color = MaterialTheme.colorScheme.onBackground,
modifier = Modifier.padding(horizontal = 32.dp, vertical = 8.dp)
)
}
Spacer(modifier = Modifier.height(8.dp))
} }
} }
} }