diff --git a/app/build.gradle.kts b/app/build.gradle.kts index c5799ba..77363c6 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -65,6 +65,9 @@ dependencies { implementation(platform("androidx.compose:compose-bom:2023.03.00")) implementation(platform("androidx.compose:compose-bom:2023.03.00")) implementation(platform("androidx.compose:compose-bom:2023.03.00")) + implementation(platform("androidx.compose:compose-bom:2023.03.00")) + implementation(platform("androidx.compose:compose-bom:2023.03.00")) + implementation(platform("androidx.compose:compose-bom:2023.03.00")) testImplementation("junit:junit:4.13.2") androidTestImplementation("androidx.test.ext:junit:1.1.5") androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") @@ -76,6 +79,9 @@ dependencies { androidTestImplementation(platform("androidx.compose:compose-bom:2023.03.00")) androidTestImplementation(platform("androidx.compose:compose-bom:2023.03.00")) androidTestImplementation(platform("androidx.compose:compose-bom:2023.03.00")) + androidTestImplementation(platform("androidx.compose:compose-bom:2023.03.00")) + androidTestImplementation(platform("androidx.compose:compose-bom:2023.03.00")) + androidTestImplementation(platform("androidx.compose:compose-bom:2023.03.00")) debugImplementation("androidx.compose.ui:ui-tooling") debugImplementation("androidx.compose.ui:ui-test-manifest") } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 021c4ec..fcb08f5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,6 +1,6 @@ + xmlns:tools="http://schemas.android.com/tools"> + tools:targetApi="31"> + + + + android:theme="@style/Theme.CleverClass"> diff --git a/app/src/main/java/com/schoolapp/cleverclass/FachActivity.kt b/app/src/main/java/com/schoolapp/cleverclass/FachActivity.kt new file mode 100644 index 0000000..8de300b --- /dev/null +++ b/app/src/main/java/com/schoolapp/cleverclass/FachActivity.kt @@ -0,0 +1,115 @@ +package com.schoolapp.cleverclass + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +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.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.ArrowBack +import androidx.compose.material3.BottomAppBar +import androidx.compose.material3.Button +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Scaffold +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.ui.Alignment.Companion.CenterVertically +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import com.schoolapp.cleverclass.ui.theme.CleverClassTheme + +class FachActivity : ComponentActivity() { + companion object { + const val ARGUMENT_KEY = "argument_key" + } + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + // get subject argument from NotenActivity + val name = intent.getStringExtra(ARGUMENT_KEY) ?: "missing subject" + + setContent { + CleverClassTheme { + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + FachContent(activity = this, name = name) + } + } + } + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun FachContent(activity: ComponentActivity, name : String){ + Scaffold( + topBar = { + TopAppBar( + colors = TopAppBarDefaults.centerAlignedTopAppBarColors(MaterialTheme.colorScheme.primaryContainer), + title = { + Text(text = name, + style = MaterialTheme.typography.headlineSmall + )}, + navigationIcon = { + IconButton(onClick = { activity.finish() }) { + Icon( + imageVector = Icons.Filled.ArrowBack, + contentDescription = null, + modifier = Modifier.size(28.dp) + ) + } + }, + modifier = Modifier.fillMaxWidth() + ) + }, + bottomBar = { + BottomAppBar( + containerColor = MaterialTheme.colorScheme.primaryContainer, + modifier = Modifier + .fillMaxWidth() + .height(64.dp) + ) { + Row (modifier = Modifier + .fillMaxWidth() + .align(CenterVertically)){ + Spacer(modifier = Modifier.width(16.dp)) + Text(text = "Schnitt:", + style = MaterialTheme.typography.headlineSmall) + Spacer(modifier = Modifier.weight(1f)) + Text(text = "Ø0.00", + style = MaterialTheme.typography.headlineSmall) + Spacer(modifier = Modifier.width(16.dp)) + } + } + } + ) {innerPadding -> + Column(modifier = Modifier + .fillMaxWidth() + .padding(innerPadding)) + { + NotenPrefab() + } + } +} + +@Composable +fun NotenPrefab(){ + Button(onClick = { /*TODO*/ }) { + Text(text = "hehe") + } +} \ No newline at end of file diff --git a/app/src/main/java/com/schoolapp/cleverclass/MainActivity.kt b/app/src/main/java/com/schoolapp/cleverclass/MainActivity.kt index 8eb1ac9..1c78d53 100644 --- a/app/src/main/java/com/schoolapp/cleverclass/MainActivity.kt +++ b/app/src/main/java/com/schoolapp/cleverclass/MainActivity.kt @@ -38,6 +38,7 @@ 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 class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { @@ -82,8 +83,8 @@ fun MainContent(){ ) Column(modifier = Modifier.verticalScroll(rememberScrollState())) { - MainButton(onClick = { /*TODO: Stundenplan activity*/ }, color = Color(0xFFFF4081), text = "Stundenplan", sharedPreferences) - MainButton(onClick = { /*TODO: Noten activity*/ }, color = Color(0xFFFFAB40), text = "Noten", sharedPreferences) + 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 = { /*TODO: Mebis activity*/ }, color = Color(0xFFE040FB), text = "Mebis", sharedPreferences) MainButton(onClick = { /*TODO: DSBmobile activity*/ }, color = Color(0xFFFF6E40), text = "DSBmobile", sharedPreferences) @@ -109,8 +110,8 @@ fun MainButton(onClick: () -> Unit, color : Color, text : String, sharedPreferen .height(if (enabledState) 128.dp else 0.dp) .padding(start = 16.dp, end = 16.dp, top = 16.dp) ) { - Text(text, - color = MaterialTheme.colorScheme.background, + Text(text = text, + color = TextOnColouredButton, style = MaterialTheme.typography.labelMedium) } diff --git a/app/src/main/java/com/schoolapp/cleverclass/NotenActivity.kt b/app/src/main/java/com/schoolapp/cleverclass/NotenActivity.kt new file mode 100644 index 0000000..36a1d81 --- /dev/null +++ b/app/src/main/java/com/schoolapp/cleverclass/NotenActivity.kt @@ -0,0 +1,109 @@ +package com.schoolapp.cleverclass + +import android.content.Intent +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +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.layout.size +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.verticalScroll +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.ArrowBack +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +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.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.unit.dp +import com.schoolapp.cleverclass.ui.theme.CleverClassTheme +import com.schoolapp.cleverclass.ui.theme.TextOnColouredButton + +class NotenActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + CleverClassTheme { + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + NotenContent(activity = this) + } + } + } + } +} + +// Content of Noten +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun NotenContent(activity: ComponentActivity){ + Column() { + TopAppBar( + colors = TopAppBarDefaults.centerAlignedTopAppBarColors(MaterialTheme.colorScheme.primaryContainer), + title = { + Text(text = "Noten", + style = MaterialTheme.typography.headlineSmall + )}, + navigationIcon = { + IconButton(onClick = { activity.finish() }) { + Icon( + imageVector = Icons.Filled.ArrowBack, + contentDescription = null, + modifier = Modifier.size(28.dp) + ) + } + }, + modifier = Modifier.fillMaxWidth() + ) + + Column(modifier = Modifier.verticalScroll(rememberScrollState())) { + FachButton(color = Color(0xFF69F0AE), text = "Deutsch", 3.66f, activity) + FachButton(color = Color(0xFFEEFF41), text = "Mathe", 1.56f, activity) + FachButton(color = Color(0xFFFFAB40), text = "Englisch", 2.27f, activity) + FachButton(color = Color(0xFF18FFFF), text = "Latein", 4.75f, activity) + FachButton(color = Color(0xFFB2FF59), text = "Französisch", 2.33f, activity) + } + } +} + +@Composable +fun FachButton(color : Color, text : String, average : Float, activity : ComponentActivity){ + Button( + onClick = { + val intent = Intent(activity, FachActivity::class.java).apply { putExtra(FachActivity.ARGUMENT_KEY, text) } + activity.startActivity(intent) }, + shape = RoundedCornerShape(40), + colors = ButtonDefaults.outlinedButtonColors(containerColor = color), + modifier = Modifier + .fillMaxWidth() + .height(64.dp) + .padding(start = 16.dp, end = 16.dp, top = 16.dp) + ) { + Row(modifier = Modifier.fillMaxWidth()) { + Text(text = text, + color = TextOnColouredButton, + style = MaterialTheme.typography.labelMedium) + Spacer(modifier = Modifier.weight(1f)) + Text(text = "Ø$average", + color = TextOnColouredButton, + style = MaterialTheme.typography.labelMedium) + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/schoolapp/cleverclass/StundenplanActivity.kt b/app/src/main/java/com/schoolapp/cleverclass/StundenplanActivity.kt new file mode 100644 index 0000000..a0864ce --- /dev/null +++ b/app/src/main/java/com/schoolapp/cleverclass/StundenplanActivity.kt @@ -0,0 +1,68 @@ +package com.schoolapp.cleverclass + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.size +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.ArrowBack +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.ui.Modifier +import androidx.compose.ui.unit.dp +import com.schoolapp.cleverclass.ui.theme.CleverClassTheme + +class StundenplanActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + CleverClassTheme { + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + 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 + )}, + navigationIcon = { + IconButton(onClick = { activity.finish() }) { + Icon( + imageVector = Icons.Filled.ArrowBack, + contentDescription = null, + modifier = Modifier.size(28.dp) + ) + } + }, + modifier = Modifier.fillMaxWidth() + ) + + Column() { + + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/schoolapp/cleverclass/ui/theme/Color.kt b/app/src/main/java/com/schoolapp/cleverclass/ui/theme/Color.kt index 2326888..cb2c23f 100644 --- a/app/src/main/java/com/schoolapp/cleverclass/ui/theme/Color.kt +++ b/app/src/main/java/com/schoolapp/cleverclass/ui/theme/Color.kt @@ -3,9 +3,11 @@ package com.schoolapp.cleverclass.ui.theme import androidx.compose.ui.graphics.Color val Black100 = Color(0xFF000000) -val Black90 = Color(0xFF141414) -val Black70 = Color(0xFF1F1F1F) +val Black90 = Color(0xFF1F1F1F) +val Black70 = Color(0xFF333333) val White100 = Color(0xFFFFFFFF) val White90 = Color(0xFFEBEBEB) -val White70 = Color(0xFFE0E0E0) \ No newline at end of file +val White70 = Color(0xFFD3D3D3) + +val TextOnColouredButton = Color(0xFF121212) \ No newline at end of file diff --git a/app/src/main/java/com/schoolapp/cleverclass/ui/theme/Theme.kt b/app/src/main/java/com/schoolapp/cleverclass/ui/theme/Theme.kt index 781b579..f23fce7 100644 --- a/app/src/main/java/com/schoolapp/cleverclass/ui/theme/Theme.kt +++ b/app/src/main/java/com/schoolapp/cleverclass/ui/theme/Theme.kt @@ -50,7 +50,7 @@ fun CleverClassTheme( if (!view.isInEditMode) { SideEffect { val window = (view.context as Activity).window - window.statusBarColor = colorScheme.primaryContainer.toArgb() + window.statusBarColor = Black70.toArgb() WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = darkTheme } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d6997d2..74a510a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -3,4 +3,7 @@ PSEActivity SettingsActivity AboutActivity + StundenplanActivity + NotenActivity + FachActivity \ No newline at end of file