Определена логика суб скринов, добавлены строки и компоненты
This commit is contained in:
@@ -23,6 +23,7 @@ import androidx.compose.ui.unit.dp
|
||||
import androidx.navigation.NavController
|
||||
import androidx.navigation.NavHostController
|
||||
import ru.megboyzz.dnevnik.navigation.AppNavRoute
|
||||
import ru.megboyzz.dnevnik.navigation.BaseNavRote
|
||||
|
||||
@Composable
|
||||
fun Int.AsPainter() = painterResource(this)
|
||||
@@ -41,7 +42,7 @@ fun SpacerHeight(height: Dp) = Spacer(Modifier.height(height))
|
||||
fun Int.AsImageVector() = ImageVector.vectorResource(this)
|
||||
|
||||
@Composable
|
||||
fun NavController.navigate(to: AppNavRoute){
|
||||
fun NavController.navigate(to: BaseNavRote){
|
||||
LaunchedEffect(Unit) {
|
||||
navigate(to.route) {
|
||||
popUpTo(to.route) { inclusive = true }
|
||||
|
||||
@@ -21,8 +21,9 @@ import ru.megboyzz.dnevnik.screens.LoginScreen
|
||||
import ru.megboyzz.dnevnik.screens.MarksScreen
|
||||
import ru.megboyzz.dnevnik.screens.ScheduleScreen
|
||||
|
||||
sealed class BaseNavRote(open val route: String)
|
||||
|
||||
sealed class AppNavRoute(val route: String){
|
||||
sealed class AppNavRoute(override val route: String): BaseNavRote(route){
|
||||
|
||||
object Splash : AppNavRoute("splash_screen")
|
||||
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
package ru.megboyzz.dnevnik.navigation
|
||||
|
||||
import androidx.compose.animation.ExperimentalAnimationApi
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.material.Text
|
||||
import androidx.compose.material.rememberScaffoldState
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.navigation.compose.NavHost
|
||||
import androidx.navigation.compose.composable
|
||||
import com.google.accompanist.navigation.animation.rememberAnimatedNavController
|
||||
import ru.megboyzz.dnevnik.AsString
|
||||
import ru.megboyzz.dnevnik.R
|
||||
import ru.megboyzz.dnevnik.screens.*
|
||||
|
||||
sealed class MarksNavRoute(override val route: String): BaseNavRote(route){
|
||||
|
||||
object LastMarks: MarksNavRoute("last_marks")
|
||||
object ByDaysMarks: MarksNavRoute("by_days_marks")
|
||||
object StatsByMarks: MarksNavRoute("stats_by_marks")
|
||||
object StatsBySubjects: MarksNavRoute("stats_by_subjects")
|
||||
object ByTermsMarks: MarksNavRoute("by_terms_marks")
|
||||
object ByYearMarks: MarksNavRoute("by_terms_marks")
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalAnimationApi::class)
|
||||
@Composable
|
||||
fun MarksSubScreenNavHost() {
|
||||
|
||||
val navController = rememberAnimatedNavController()
|
||||
|
||||
val list = listOf(
|
||||
SubScreenData(
|
||||
R.string.title_last_marks.AsString(),
|
||||
MarksNavRoute.LastMarks,
|
||||
remember { mutableStateOf(true) }
|
||||
),
|
||||
SubScreenData(
|
||||
R.string.title_by_days.AsString(),
|
||||
MarksNavRoute.ByDaysMarks,
|
||||
remember { mutableStateOf(false) }
|
||||
),
|
||||
SubScreenData(
|
||||
R.string.title_statistics_by_marks.AsString(),
|
||||
MarksNavRoute.StatsByMarks,
|
||||
remember { mutableStateOf(false) }
|
||||
),
|
||||
SubScreenData(
|
||||
R.string.title_statistics_by_subjects.AsString(),
|
||||
MarksNavRoute.StatsBySubjects,
|
||||
remember { mutableStateOf(false) }
|
||||
),
|
||||
SubScreenData(
|
||||
R.string.title_by_terms_4.AsString(),
|
||||
MarksNavRoute.ByTermsMarks,
|
||||
remember { mutableStateOf(false) }
|
||||
),
|
||||
SubScreenData(
|
||||
R.string.title_one_year.AsString(),
|
||||
MarksNavRoute.ByYearMarks,
|
||||
remember { mutableStateOf(false) }
|
||||
),
|
||||
)
|
||||
Column {
|
||||
SubScreenNavBar(list = list, subScreenNavController = navController)
|
||||
|
||||
NavHost(
|
||||
navController = navController,
|
||||
startDestination = MarksNavRoute.LastMarks.route
|
||||
){
|
||||
composable(MarksNavRoute.LastMarks.route) { Text(MarksNavRoute.LastMarks.route) }
|
||||
composable(MarksNavRoute.ByDaysMarks.route) { Text(MarksNavRoute.ByDaysMarks.route) }
|
||||
composable(MarksNavRoute.StatsByMarks.route) { Text(MarksNavRoute.StatsByMarks.route) }
|
||||
composable(MarksNavRoute.StatsBySubjects.route) { Text(MarksNavRoute.StatsBySubjects.route) }
|
||||
composable(MarksNavRoute.ByTermsMarks.route) { Text(MarksNavRoute.ByTermsMarks.route) }
|
||||
composable(MarksNavRoute.ByYearMarks.route) { Text(MarksNavRoute.ByYearMarks.route) }
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
package ru.megboyzz.dnevnik.navigation
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
package ru.megboyzz.dnevnik.screens
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import androidx.compose.animation.animateColorAsState
|
||||
import android.widget.Toast
|
||||
import androidx.compose.animation.*
|
||||
import androidx.compose.animation.core.tween
|
||||
import androidx.compose.animation.expandHorizontally
|
||||
import androidx.compose.animation.fadeOut
|
||||
import androidx.compose.animation.slideInHorizontally
|
||||
import androidx.compose.foundation.*
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.selection.toggleable
|
||||
@@ -14,6 +12,7 @@ import androidx.compose.foundation.text.KeyboardOptions
|
||||
import androidx.compose.material.*
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.Check
|
||||
import androidx.compose.material.icons.filled.Menu
|
||||
import androidx.compose.material.icons.filled.Visibility
|
||||
import androidx.compose.material.icons.filled.VisibilityOff
|
||||
import androidx.compose.runtime.*
|
||||
@@ -35,6 +34,7 @@ import androidx.compose.ui.graphics.painter.Painter
|
||||
import androidx.compose.ui.layout.ContentScale
|
||||
import androidx.compose.ui.modifier.modifierLocalConsumer
|
||||
import androidx.compose.ui.platform.LocalConfiguration
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.platform.LocalDensity
|
||||
import androidx.compose.ui.semantics.Role
|
||||
import androidx.compose.ui.text.input.KeyboardType
|
||||
@@ -46,11 +46,15 @@ import androidx.compose.ui.unit.*
|
||||
import androidx.constraintlayout.compose.Visibility
|
||||
import androidx.navigation.NavController
|
||||
import androidx.navigation.compose.rememberNavController
|
||||
import com.google.accompanist.navigation.animation.rememberAnimatedNavController
|
||||
import kotlinx.coroutines.launch
|
||||
import ru.megboyzz.dnevnik.*
|
||||
import ru.megboyzz.dnevnik.R
|
||||
import ru.megboyzz.dnevnik.navigation.AppNavRoute
|
||||
import ru.megboyzz.dnevnik.navigation.BaseNavRote
|
||||
import ru.megboyzz.dnevnik.navigation.MarksNavRoute
|
||||
import ru.megboyzz.dnevnik.ui.theme.*
|
||||
import java.util.Calendar
|
||||
|
||||
@Composable
|
||||
fun MainScaffold(
|
||||
@@ -80,13 +84,23 @@ fun MainScaffold(
|
||||
}
|
||||
}
|
||||
) {
|
||||
Image(painter = icon, contentDescription = "icon")
|
||||
|
||||
Icon(
|
||||
imageVector = Icons.Filled.Menu,
|
||||
contentDescription = "menu",
|
||||
tint = white
|
||||
)
|
||||
}
|
||||
SpacerWidth(width = 5.dp)
|
||||
Text(
|
||||
text = title,
|
||||
fontSize = 16.sp,
|
||||
color = white
|
||||
)
|
||||
Spacer(Modifier.weight(1f))
|
||||
Box(Modifier.padding(15.dp, 15.dp)) {
|
||||
Image(painter = icon, contentDescription = "icon")
|
||||
}
|
||||
}
|
||||
},
|
||||
content = content,
|
||||
@@ -123,6 +137,9 @@ fun BottomBar(navController: NavController) {
|
||||
Box(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.drawColoredShadow(
|
||||
offsetY = 1.dp
|
||||
)
|
||||
.height(90.dp)
|
||||
.background(white)
|
||||
.padding(10.dp, 10.dp, 10.dp, 15.dp),
|
||||
@@ -180,31 +197,6 @@ fun BottomNavButton(
|
||||
}
|
||||
}
|
||||
|
||||
@Preview
|
||||
@Composable
|
||||
fun BottomNavButtonPrev() {
|
||||
Row(horizontalArrangement = Arrangement.spacedBy(20.dp)) {
|
||||
BottomNavButton(
|
||||
icon = R.drawable.ic_marks.AsPainter(),
|
||||
text = R.string.title_marks.AsString()
|
||||
) { /* TODO*/ }
|
||||
BottomNavButton(
|
||||
icon = R.drawable.ic_homework.AsPainter(),
|
||||
text = R.string.title_hw.AsString()
|
||||
) { /* TODO*/ }
|
||||
BottomNavButton(
|
||||
icon = R.drawable.ic_schedule.AsPainter(),
|
||||
text = R.string.title_schedule.AsString()
|
||||
) { /* TODO*/ }
|
||||
}
|
||||
}
|
||||
|
||||
@Preview
|
||||
@Composable
|
||||
fun BottomBarPrev() {
|
||||
val navController = rememberNavController()
|
||||
BottomBar(navController = navController)
|
||||
}
|
||||
|
||||
|
||||
@SuppressLint("CoroutineCreationDuringComposition")
|
||||
@@ -385,14 +377,6 @@ fun BigLoginBackground() {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Preview
|
||||
@Composable
|
||||
fun ProfilePrev() {
|
||||
ProfileCard(painter = R.drawable.ic_author.AsPainter())
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun MainTextField(
|
||||
value: MutableState<String>,
|
||||
@@ -486,59 +470,6 @@ fun DrawerMainButton(
|
||||
}
|
||||
}
|
||||
|
||||
@Preview
|
||||
@Composable
|
||||
fun Almst() {
|
||||
Column() {
|
||||
AlmostOutlinedText(text = "Идет 3-я четверть")
|
||||
}
|
||||
}
|
||||
|
||||
@Preview
|
||||
@Composable
|
||||
fun ButtonPrev() {
|
||||
DrawerMainButton(
|
||||
icon = R.drawable.ic_marks.AsPainter(),
|
||||
text = "Оценки"
|
||||
)
|
||||
}
|
||||
|
||||
@Preview
|
||||
@Composable
|
||||
fun CheckBoxed() {
|
||||
val isCheck = remember { mutableStateOf(false) }
|
||||
val titleColor = mainBlue
|
||||
Row {
|
||||
Card(
|
||||
elevation = 0.dp,
|
||||
shape = RoundedCornerShape(6.dp),
|
||||
border = BorderStroke(1.5.dp, color = titleColor)
|
||||
) {
|
||||
Box(
|
||||
modifier = Modifier
|
||||
.size(20.dp)
|
||||
.background(if (isCheck.value) titleColor else Color.White)
|
||||
.clickable {
|
||||
isCheck.value = !isCheck.value
|
||||
},
|
||||
contentAlignment = Alignment.Center
|
||||
) {
|
||||
if(isCheck.value)
|
||||
Icon(Icons.Default.Check, contentDescription = "", tint = Color.White)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Preview
|
||||
@Composable
|
||||
fun PrevCB() {
|
||||
val checkedState = remember { mutableStateOf(true) }
|
||||
MainCheckbox(checkedState){
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Composable
|
||||
fun MainCheckbox(
|
||||
@@ -729,4 +660,303 @@ fun LoginScreenContent(
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun SubScreenNavButton(
|
||||
text: String,
|
||||
isClicked: MutableState<Boolean>,
|
||||
onCLick: () -> Unit
|
||||
) {
|
||||
val colors = ButtonDefaults.buttonColors(
|
||||
backgroundColor = if(isClicked.value) mainBlue else white,
|
||||
contentColor = if(isClicked.value) white else dark
|
||||
)
|
||||
Button(
|
||||
onClick = {
|
||||
isClicked.value = !isClicked.value
|
||||
onCLick.invoke()
|
||||
},
|
||||
shape = RoundedCornerShape(20.dp),
|
||||
border = BorderStroke(
|
||||
width = 1.dp,
|
||||
color = mainBlue,
|
||||
),
|
||||
colors = colors,
|
||||
) {
|
||||
Text(
|
||||
text = text,
|
||||
style= MainText
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
data class SubScreenData(
|
||||
val title: String,
|
||||
val to: BaseNavRote,
|
||||
val isClicked: MutableState<Boolean>
|
||||
)
|
||||
|
||||
|
||||
@Composable
|
||||
fun SubScreenNavBar(
|
||||
list: List<SubScreenData>,
|
||||
subScreenNavController: NavController
|
||||
) {
|
||||
val horizontalScroll = rememberScrollState()
|
||||
Row(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.horizontalScroll(horizontalScroll)
|
||||
.padding(15.dp),
|
||||
horizontalArrangement = Arrangement.spacedBy(15.dp)
|
||||
){
|
||||
for(data in list){
|
||||
if(data.isClicked.value)
|
||||
subScreenNavController.navigate(data.to)
|
||||
SubScreenNavButton(
|
||||
text = data.title,
|
||||
isClicked = data.isClicked
|
||||
) {
|
||||
for(d in list){
|
||||
if(data != d)
|
||||
d.isClicked.value = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Composable
|
||||
fun LastMarkCard(
|
||||
subjectName: String,
|
||||
mark: Int,
|
||||
date: String, /* мейби стоит поменять на Date или инстанс */
|
||||
teacher: String,
|
||||
reason: String = "null"
|
||||
) {
|
||||
Card(
|
||||
backgroundColor = white,
|
||||
shape = RoundedCornerShape(10.dp),
|
||||
border = BorderStroke(
|
||||
width = 1.dp,
|
||||
color = mainBlue
|
||||
),
|
||||
modifier = Modifier.fillMaxWidth()
|
||||
) {
|
||||
Row(
|
||||
horizontalArrangement = Arrangement.SpaceBetween,
|
||||
modifier = Modifier.padding(15.dp)
|
||||
) {
|
||||
Column(
|
||||
horizontalAlignment = Alignment.Start,
|
||||
verticalArrangement = Arrangement.SpaceBetween,
|
||||
modifier = Modifier.width(200.dp)
|
||||
) {
|
||||
Text(
|
||||
text = subjectName,
|
||||
style = MainText
|
||||
)
|
||||
Text(
|
||||
text = mark.toString(),
|
||||
style = H1,
|
||||
color = mainBlue
|
||||
)
|
||||
}
|
||||
Column(verticalArrangement = Arrangement.spacedBy(2.dp)) {
|
||||
Text(
|
||||
text = "${R.string.title_mark_recive.AsString()} $date",
|
||||
style = MainText,
|
||||
color = dark
|
||||
)
|
||||
Text(
|
||||
text = "${R.string.title_teacher_name.AsString()}: $teacher",
|
||||
style = MainText,
|
||||
color = dark
|
||||
)
|
||||
if(reason != "null")
|
||||
Text(
|
||||
text = "${R.string.title_reason.AsString()} $reason",
|
||||
style = MainText,
|
||||
color = dark
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Preview
|
||||
@Composable
|
||||
fun LastMarkPrev() {
|
||||
Column(verticalArrangement = Arrangement.spacedBy(20.dp)) {
|
||||
LastMarkCard(
|
||||
subjectName = "Русский язык",
|
||||
mark = 3,
|
||||
date = "03.02.2023",
|
||||
teacher = "Джаналиева Д. Ф.",
|
||||
reason = "диктнант"
|
||||
)
|
||||
LastMarkCard(
|
||||
subjectName = "Алгебра и начала математического анализа",
|
||||
mark = 5,
|
||||
date = "03.08.2023",
|
||||
teacher = "Штрошер С. Н.")
|
||||
}
|
||||
}
|
||||
|
||||
data class CalendarData(
|
||||
val title: String,
|
||||
|
||||
)
|
||||
|
||||
|
||||
@Composable
|
||||
fun CardCalendar(
|
||||
onClick: (day: Int) -> Unit
|
||||
) {
|
||||
//Calendar(Calendar.FEBRUARY)
|
||||
val listOfDays = listOf(
|
||||
R.string.title_mon.AsString(),
|
||||
R.string.title_tue.AsString(),
|
||||
R.string.title_wed.AsString(),
|
||||
R.string.title_thu.AsString(),
|
||||
R.string.title_fri.AsString(),
|
||||
R.string.title_sat.AsString(),
|
||||
)
|
||||
Card(
|
||||
backgroundColor = white,
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
shape = RoundedCornerShape(10.dp)
|
||||
){
|
||||
Box(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(15.dp)
|
||||
){
|
||||
Column(
|
||||
//horizontalAlignment = Alignment.CenterHorizontally,
|
||||
modifier = Modifier.fillMaxWidth()
|
||||
) {
|
||||
Row(
|
||||
horizontalArrangement = Arrangement.SpaceBetween,
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(10.dp, 0.dp, 10.dp, 5.dp)
|
||||
){
|
||||
for(day in listOfDays){
|
||||
Text(
|
||||
text = day,
|
||||
style = MainText,
|
||||
color = dark
|
||||
)
|
||||
}
|
||||
}
|
||||
Divider(
|
||||
thickness = 1.dp,
|
||||
color = dark,
|
||||
modifier = Modifier.padding(0.dp, 0.dp, 0.dp, 10.dp)
|
||||
)
|
||||
val days = 28
|
||||
val weeks = days / 6
|
||||
var dayIn = 2
|
||||
val startDay = 1
|
||||
Row(
|
||||
horizontalArrangement = Arrangement.SpaceBetween,
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(10.dp, 10.dp, 10.dp, 5.dp)
|
||||
) {
|
||||
for (i in 1..6) {
|
||||
//if(i != 7)
|
||||
Column(
|
||||
verticalArrangement = Arrangement.spacedBy(10.dp)
|
||||
) {
|
||||
for(j in i..days step 7){
|
||||
var text = j.toString()
|
||||
if(j < startDay)
|
||||
text = ""
|
||||
val isClicked = remember {
|
||||
mutableStateOf(false)
|
||||
}
|
||||
NumberOnCalendar(
|
||||
isClicked = isClicked,
|
||||
number = j
|
||||
) { onClick.invoke(j) }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*for(day in 1..weeks){
|
||||
Row(
|
||||
horizontalArrangement = Arrangement.SpaceBetween,
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(10.dp, 10.dp, 10.dp, 5.dp)
|
||||
){
|
||||
for(i in dayIn..dayIn + 5){
|
||||
Text(
|
||||
text = i.toString(),
|
||||
color = dark,
|
||||
style = MainText,
|
||||
modifier = Modifier.clickable{
|
||||
onClick.invoke(i)
|
||||
}
|
||||
)
|
||||
}
|
||||
dayIn += 6
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// TODO СДЕЛАТЬ КЛИКАБЕЛЬНОЕ ЧИСЛО НА КАЛЕНДАРЕ
|
||||
@Composable
|
||||
fun NumberOnCalendar(
|
||||
isClicked: MutableState<Boolean>,
|
||||
number: Int,
|
||||
onClick: () -> Unit
|
||||
) {
|
||||
val isClickedModifier = if(isClicked.value)
|
||||
Modifier
|
||||
.border(
|
||||
width = 1.dp,
|
||||
color = mainBlue,
|
||||
shape = RoundedCornerShape(20.dp)
|
||||
)
|
||||
.background(
|
||||
color = lightGray,
|
||||
shape = RoundedCornerShape(20.dp)
|
||||
)
|
||||
.padding(2.dp)
|
||||
else Modifier
|
||||
Box(
|
||||
modifier = Modifier
|
||||
.size(30.dp)
|
||||
.then(isClickedModifier),
|
||||
contentAlignment = Alignment.Center
|
||||
){
|
||||
Text(
|
||||
text = number.toString(),
|
||||
style = H2,
|
||||
color = dark,
|
||||
modifier = Modifier.clickable{
|
||||
isClicked.value = !isClicked.value
|
||||
onClick.invoke()
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@Preview
|
||||
@Composable
|
||||
fun CalendarPrev() {
|
||||
val current = LocalContext.current
|
||||
CardCalendar(){
|
||||
Toast.makeText(current, "Число $it", Toast.LENGTH_SHORT).show()
|
||||
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,7 @@ import androidx.navigation.NavController
|
||||
import ru.megboyzz.dnevnik.AsPainter
|
||||
import ru.megboyzz.dnevnik.AsString
|
||||
import ru.megboyzz.dnevnik.R
|
||||
import ru.megboyzz.dnevnik.navigation.MarksSubScreenNavHost
|
||||
|
||||
@Composable
|
||||
fun MarksScreen(
|
||||
@@ -18,7 +19,7 @@ fun MarksScreen(
|
||||
navController = navController,
|
||||
scaffoldState = scaffoldState
|
||||
) {
|
||||
|
||||
MarksSubScreenNavHost()
|
||||
}
|
||||
|
||||
}
|
||||
@@ -14,4 +14,53 @@
|
||||
<string name="title_remember_me">Remember me</string>
|
||||
<string name="title_sign_in">Sign in</string>
|
||||
<string name="title_sign_up">Sign up</string>
|
||||
<string name="title_mark_recive">"Recived: "</string>
|
||||
<string name="title_teacher_name">Teacher</string>
|
||||
<string name="title_last_marks">Last marks</string>
|
||||
<string name="title_by_days">By days</string>
|
||||
<string name="title_statistics_by_marks">Statistics by marks</string>
|
||||
<string name="title_statistics_by_subjects">Statistics by subjects</string>
|
||||
<string name="title_by_terms_4">By terms</string>
|
||||
<string name="title_by_trems_2">By terms</string>
|
||||
<string name="title_term_4">Term</string>
|
||||
<string name="title_trem_2">Term</string>
|
||||
<string name="title_common_stats">Common</string>
|
||||
<string name="title_stats_by_subject">Subjects</string>
|
||||
<string name="title_one_year">Year</string>
|
||||
<string name="title_academic_year">Аcademic year</string>
|
||||
<string name="title_stats_by_mark_5">Summary of ratings 5</string>
|
||||
<string name="title_stats_by_mark_4">Summary of ratings 4</string>
|
||||
<string name="title_stats_by_mark_3">Summary of ratings 3</string>
|
||||
<string name="title_stats_by_mark_2">Summary of ratings 2</string>
|
||||
<string name="title_stats_by_mark_1">Summary of ratings 1</string>
|
||||
<string name="title_mon">MON</string>
|
||||
<string name="title_tue">TUE</string>
|
||||
<string name="title_wed">WED</string>
|
||||
<string name="title_thu">THU</string>
|
||||
<string name="title_fri">FRI</string>
|
||||
<string name="title_sat">SAT</string>
|
||||
<string name="title_january">January</string>
|
||||
<string name="title_february">February</string>
|
||||
<string name="title_march">March</string>
|
||||
<string name="title_april">April</string>
|
||||
<string name="title_may">May</string>
|
||||
<string name="title_june">June</string>
|
||||
<string name="title_july">July</string>
|
||||
<string name="title_august">August</string>
|
||||
<string name="title_september">September</string>
|
||||
<string name="title_october">October</string>
|
||||
<string name="title_november">November</string>
|
||||
<string name="title_december">December</string>
|
||||
<string name="title_no_marks">There are no ratings</string>
|
||||
<string name="title_day_no_marks">There are no ratings for this day.</string>
|
||||
<string name="title_lessons_schedule">Schedule of lessons</string>
|
||||
<string name="title_calls_schedule">Schedule of calls</string>
|
||||
<string name="title_no_lessons">No lessons</string>
|
||||
<string name="title_no_calls_schedule">No calls schedule</string>
|
||||
<string name="title_now_lesson">Now there is a lesson</string>
|
||||
<string name="title_lesson_teacher">Teacher</string>
|
||||
<string name="title_classroom">Classroom</string>
|
||||
<string name="title_next_lesson">The next lesson</string>
|
||||
<string name="title_lesson">Lesson</string>
|
||||
<string name="title_reason">"Reason: "</string>
|
||||
</resources>
|
||||
@@ -13,4 +13,53 @@
|
||||
<string name="title_remember_me">Запомнить меня</string>
|
||||
<string name="title_sign_in">Войти</string>
|
||||
<string name="title_sign_up">Нет аккаунта? Расскажем как его зарегистрировать и подключить к школе</string>
|
||||
<string name="title_mark_recive">Получена:</string>
|
||||
<string name="title_teacher_name">Преподаватель</string>
|
||||
<string name="title_last_marks">Последние</string>
|
||||
<string name="title_by_days">По дням</string>
|
||||
<string name="title_statistics_by_marks">Статистика по оценкам</string>
|
||||
<string name="title_statistics_by_subjects">Статистика по предметам</string>
|
||||
<string name="title_by_terms_4">По четвертям</string>
|
||||
<string name="title_by_trems_2">По семестрам</string>
|
||||
<string name="title_term_4">Четверть</string>
|
||||
<string name="title_trem_2">Семестр</string>
|
||||
<string name="title_common_stats">Общая сводка</string>
|
||||
<string name="title_stats_by_subject">Сводка по предметам</string>
|
||||
<string name="title_one_year">За год</string>
|
||||
<string name="title_academic_year">учебный год</string>
|
||||
<string name="title_stats_by_mark_5">Сводка по оценкам отлично</string>
|
||||
<string name="title_stats_by_mark_4">Сводка по оценкам хорошо</string>
|
||||
<string name="title_stats_by_mark_3">Сводка по оценкам уд.</string>
|
||||
<string name="title_stats_by_mark_2">Сводка по оценкам неуд.</string>
|
||||
<string name="title_stats_by_mark_1">Сводка по оценкам кол</string>
|
||||
<string name="title_mon">ПН</string>
|
||||
<string name="title_tue">ВТ</string>
|
||||
<string name="title_wed">СР</string>
|
||||
<string name="title_thu">ЧТ</string>
|
||||
<string name="title_fri">ПТ</string>
|
||||
<string name="title_sat">СБ</string>
|
||||
<string name="title_january">Январь</string>
|
||||
<string name="title_february">Февраль</string>
|
||||
<string name="title_march">Март</string>
|
||||
<string name="title_april">Апрель</string>
|
||||
<string name="title_may">Май</string>
|
||||
<string name="title_june">Июнь</string>
|
||||
<string name="title_july">Июль</string>
|
||||
<string name="title_august">Август</string>
|
||||
<string name="title_september">Сентябрь</string>
|
||||
<string name="title_october">Октябрь</string>
|
||||
<string name="title_november">Ноябрь</string>
|
||||
<string name="title_december">Декабрь</string>
|
||||
<string name="title_no_marks">Таких оценок нет</string>
|
||||
<string name="title_day_no_marks">В этот день нет ни одной оценки</string>
|
||||
<string name="title_lessons_schedule">Расписание уроков</string>
|
||||
<string name="title_calls_schedule">Распиание звонков</string>
|
||||
<string name="title_no_lessons">Сейчас нет уроков можно отдыхать!</string>
|
||||
<string name="title_no_calls_schedule">Пока не выложили расписание звонков</string>
|
||||
<string name="title_now_lesson">Сейчас идет урок</string>
|
||||
<string name="title_lesson_teacher">Урок ведет</string>
|
||||
<string name="title_classroom">В кабинете</string>
|
||||
<string name="title_next_lesson">Следующий урок</string>
|
||||
<string name="title_lesson">Урок</string>
|
||||
<string name="title_reason">Причина:</string>
|
||||
</resources>
|
||||
Reference in New Issue
Block a user