Маленький рефакторинг и сделан экран настроек
This commit is contained in:
@@ -9,6 +9,7 @@ import androidx.compose.foundation.layout.width
|
||||
import androidx.compose.material.ripple.rememberRipple
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.composed
|
||||
import androidx.compose.ui.draw.drawBehind
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.Paint
|
||||
@@ -109,18 +110,17 @@ fun Modifier.drawColoredShadow(
|
||||
}
|
||||
} else this
|
||||
|
||||
@Composable
|
||||
fun Modifier.mainClickable(
|
||||
radius: Dp = Dp.Unspecified,
|
||||
onClick: () -> Unit
|
||||
) = this.clickable(
|
||||
) = composed { this.clickable(
|
||||
interactionSource = remember { MutableInteractionSource() },
|
||||
indication = rememberRipple(
|
||||
radius = radius,
|
||||
color = dark
|
||||
),
|
||||
onClick = onClick
|
||||
)
|
||||
) }
|
||||
|
||||
@Composable
|
||||
fun rememberFirstMostVisibleMonth(
|
||||
|
||||
@@ -16,10 +16,7 @@ import androidx.navigation.compose.composable
|
||||
import androidx.navigation.compose.rememberNavController
|
||||
import com.google.accompanist.navigation.animation.AnimatedNavHost
|
||||
import com.google.accompanist.navigation.animation.rememberAnimatedNavController
|
||||
import ru.megboyzz.dnevnik.screens.HomeWorkScreen
|
||||
import ru.megboyzz.dnevnik.screens.LoginScreen
|
||||
import ru.megboyzz.dnevnik.screens.MarksScreen
|
||||
import ru.megboyzz.dnevnik.screens.ScheduleScreen
|
||||
import ru.megboyzz.dnevnik.screens.*
|
||||
|
||||
sealed class BaseNavRote(open val route: String)
|
||||
|
||||
@@ -50,6 +47,6 @@ fun AppNavHost(){
|
||||
composable(AppNavRoute.Marks.route) { MarksScreen(navController, scaffoldState) }
|
||||
composable(AppNavRoute.Schedule.route) { ScheduleScreen(navController, scaffoldState) }
|
||||
composable(AppNavRoute.HomeWorks.route) { HomeWorkScreen(navController, scaffoldState) }
|
||||
composable(AppNavRoute.Settings.route) { }
|
||||
composable(AppNavRoute.Settings.route) { SettingsScreen(navController, scaffoldState) }
|
||||
}
|
||||
}
|
||||
@@ -6,7 +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.screens.ui.MainScaffold
|
||||
import ru.megboyzz.dnevnik.screens.ui.main.MainScaffold
|
||||
|
||||
@Composable
|
||||
fun HomeWorkScreen(
|
||||
|
||||
@@ -7,7 +7,7 @@ import ru.megboyzz.dnevnik.AsPainter
|
||||
import ru.megboyzz.dnevnik.AsString
|
||||
import ru.megboyzz.dnevnik.R
|
||||
import ru.megboyzz.dnevnik.navigation.MarksSubScreenNavHost
|
||||
import ru.megboyzz.dnevnik.screens.ui.MainScaffold
|
||||
import ru.megboyzz.dnevnik.screens.ui.main.MainScaffold
|
||||
|
||||
@Composable
|
||||
fun MarksScreen(
|
||||
|
||||
@@ -6,7 +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.screens.ui.MainScaffold
|
||||
import ru.megboyzz.dnevnik.screens.ui.main.MainScaffold
|
||||
|
||||
@Composable
|
||||
fun ScheduleScreen(
|
||||
|
||||
@@ -1,2 +1,216 @@
|
||||
package ru.megboyzz.dnevnik.screens
|
||||
|
||||
import androidx.compose.foundation.Image
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.material.*
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.painter.Painter
|
||||
import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.navigation.NavController
|
||||
import ru.megboyzz.dnevnik.*
|
||||
import ru.megboyzz.dnevnik.R
|
||||
import ru.megboyzz.dnevnik.screens.ui.UnderlinedText
|
||||
import ru.megboyzz.dnevnik.screens.ui.main.SettingsScaffold
|
||||
import ru.megboyzz.dnevnik.ui.theme.H2
|
||||
|
||||
@Composable
|
||||
fun SettingsScreen(
|
||||
navController: NavController,
|
||||
scaffoldState: ScaffoldState
|
||||
) {
|
||||
|
||||
SettingsScaffold(
|
||||
onLeave = {
|
||||
//navController.navigate()
|
||||
},
|
||||
scaffoldState = scaffoldState,
|
||||
navController = navController
|
||||
) {
|
||||
var enabled by remember {
|
||||
mutableStateOf(false)
|
||||
}
|
||||
|
||||
Column(
|
||||
modifier = Modifier
|
||||
.fillMaxSize()
|
||||
.padding(20.dp)
|
||||
){
|
||||
|
||||
SettingsCategory(title = R.string.settings_category_accont.AsString()) {
|
||||
|
||||
SettingsBaseAccountHeader(
|
||||
name = "Киц Михаил",
|
||||
studentClass = "11-А"
|
||||
)
|
||||
|
||||
}
|
||||
|
||||
SettingsCategory(title = R.string.settings_category_application.AsString()) {
|
||||
|
||||
SettingsMenuItem(
|
||||
title = R.string.title_choose_icons.AsString(),
|
||||
icon = R.drawable.ic_choose_icons.AsPainter(),
|
||||
onClick = {}
|
||||
)
|
||||
|
||||
SettingsMenuSwitch(
|
||||
title = R.string.title_enable_notif.AsString(),
|
||||
enabled = enabled,
|
||||
onChange = {
|
||||
enabled =! it
|
||||
}
|
||||
)
|
||||
|
||||
}
|
||||
|
||||
Spacer(modifier = Modifier.weight(1f))
|
||||
|
||||
SettingsCategory(title = R.string.settings_category_author.AsString()) {
|
||||
|
||||
SettingsMenuItem(
|
||||
title = R.string.settings_category_author.AsString(),
|
||||
icon = R.drawable.ic_author.AsPainter()
|
||||
) {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Composable
|
||||
fun SettingsCategory(
|
||||
title: String,
|
||||
content: @Composable () -> Unit
|
||||
) {
|
||||
Column{
|
||||
UnderlinedText(title)
|
||||
SpacerHeight(height = 10.dp)
|
||||
Column { content.invoke() }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Composable
|
||||
fun SettingsBaseMenuItem(
|
||||
title: String,
|
||||
onClick: () -> Unit,
|
||||
leadingContent: @Composable () -> Unit
|
||||
) {
|
||||
Row(
|
||||
modifier = Modifier.mainClickable { onClick.invoke() },
|
||||
horizontalArrangement = Arrangement.spacedBy(5.dp),
|
||||
verticalAlignment = Alignment.CenterVertically
|
||||
){
|
||||
leadingContent.invoke()
|
||||
Text(
|
||||
text = title,
|
||||
style = H2,
|
||||
overflow = TextOverflow.Ellipsis,
|
||||
modifier = Modifier.fillMaxWidth()
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun SettingsMenuItem(
|
||||
title: String,
|
||||
icon: Painter,
|
||||
onClick: () -> Unit
|
||||
) {
|
||||
|
||||
SettingsBaseMenuItem(
|
||||
title = title,
|
||||
onClick = onClick
|
||||
) {
|
||||
|
||||
Box(
|
||||
contentAlignment = Alignment.Center,
|
||||
modifier = Modifier.size(48.dp)
|
||||
) {
|
||||
Icon(
|
||||
painter = icon,
|
||||
contentDescription = "",
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun SettingsMenuSwitch(
|
||||
title: String,
|
||||
enabled: Boolean,
|
||||
onChange: (Boolean) -> Unit
|
||||
) {
|
||||
|
||||
SettingsBaseMenuItem(
|
||||
title = title,
|
||||
onClick = { onChange.invoke(enabled) }
|
||||
) {
|
||||
Switch(checked = enabled, onCheckedChange = { onChange.invoke(enabled) })
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun SettingsMenuCheckBox(
|
||||
title: String,
|
||||
enabled: Boolean,
|
||||
onChange: (Boolean) -> Unit
|
||||
) {
|
||||
|
||||
SettingsBaseMenuItem(
|
||||
title = title,
|
||||
onClick = { onChange.invoke(enabled) }
|
||||
) {
|
||||
Checkbox(checked = enabled, onCheckedChange = { onChange.invoke(enabled) })
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun SettingsBaseAccountHeader(
|
||||
|
||||
name: String,
|
||||
studentClass: String,
|
||||
|
||||
) {
|
||||
|
||||
Row(
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.spacedBy(5.dp)
|
||||
) {
|
||||
Box(
|
||||
contentAlignment = Alignment.Center,
|
||||
modifier = Modifier.size(32.dp)
|
||||
){
|
||||
Image(
|
||||
painter = R.drawable.ic_author.AsPainter(),
|
||||
contentDescription = ""
|
||||
)
|
||||
}
|
||||
Column(
|
||||
verticalArrangement = Arrangement.spacedBy(5.dp)
|
||||
) {
|
||||
Text(
|
||||
text = name,
|
||||
style = H2
|
||||
)
|
||||
Text(
|
||||
text = studentClass,
|
||||
style = H2
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -33,6 +33,7 @@ import androidx.compose.ui.text.input.VisualTransformation
|
||||
import androidx.compose.ui.text.style.TextAlign
|
||||
import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.unit.*
|
||||
import androidx.compose.ui.window.DialogProperties
|
||||
import ru.megboyzz.dnevnik.*
|
||||
import ru.megboyzz.dnevnik.R
|
||||
import ru.megboyzz.dnevnik.ui.theme.*
|
||||
@@ -559,3 +560,8 @@ fun MessageAlertInWork() {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Composable
|
||||
fun AlertBox() {
|
||||
//DialogProperties().
|
||||
}
|
||||
|
||||
@@ -12,16 +12,28 @@ import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material.*
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.Save
|
||||
import androidx.compose.material.icons.filled.SouthEast
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.ExperimentalComposeUiApi
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.vector.rememberVectorPainter
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.window.DialogProperties
|
||||
import androidx.navigation.compose.rememberNavController
|
||||
import com.google.accompanist.navigation.animation.rememberAnimatedNavController
|
||||
import com.kizitonwose.calendar.core.daysOfWeek
|
||||
import ru.megboyzz.dnevnik.screens.SettingsCategory
|
||||
import ru.megboyzz.dnevnik.screens.SettingsMenuSwitch
|
||||
import ru.megboyzz.dnevnik.screens.SettingsMenuItem
|
||||
import ru.megboyzz.dnevnik.screens.SettingsScreen
|
||||
import ru.megboyzz.dnevnik.screens.ui.*
|
||||
import ru.megboyzz.dnevnik.screens.ui.calendar.NiceCalendar
|
||||
import ru.megboyzz.dnevnik.screens.ui.main.SettingsScaffold
|
||||
import ru.megboyzz.dnevnik.screens.ui.piechart.PieChart
|
||||
import ru.megboyzz.dnevnik.screens.ui.piechart.PieChartCard
|
||||
import ru.megboyzz.dnevnik.screens.ui.piechart.PieChartData
|
||||
@@ -30,6 +42,7 @@ import ru.megboyzz.dnevnik.screens.ui.schedule.BaseScheduleCard
|
||||
import ru.megboyzz.dnevnik.screens.ui.schedule.BaseScheduleShield
|
||||
import ru.megboyzz.dnevnik.screens.ui.schedule.CallData
|
||||
import ru.megboyzz.dnevnik.ui.theme.mainBlue
|
||||
import ru.megboyzz.dnevnik.ui.theme.mainBlur
|
||||
import ru.megboyzz.dnevnik.ui.theme.white
|
||||
import java.time.LocalDate
|
||||
import java.time.YearMonth
|
||||
@@ -353,4 +366,42 @@ fun ScheduleCallsPrev() {
|
||||
|
||||
BaseScheduleCallsCard(callsList = calls)
|
||||
|
||||
}
|
||||
|
||||
@Preview
|
||||
@Composable
|
||||
fun ScaffoldTest() {
|
||||
val scaffoldState = rememberScaffoldState()
|
||||
val navController = rememberNavController()
|
||||
SettingsScaffold(
|
||||
onLeave = { /*TODO*/ },
|
||||
scaffoldState = scaffoldState,
|
||||
navController = navController
|
||||
) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Preview
|
||||
@Composable
|
||||
fun SettingsTest() {
|
||||
|
||||
SettingsScreen(navController = rememberNavController(), scaffoldState = rememberScaffoldState())
|
||||
|
||||
}
|
||||
|
||||
@Preview
|
||||
@Composable
|
||||
fun Test1() {
|
||||
|
||||
AlertDialog(
|
||||
onDismissRequest = { /*TODO*/ },
|
||||
text = {
|
||||
Text(text = "hehe")
|
||||
},
|
||||
buttons = {
|
||||
Text(text = "hehe")
|
||||
}
|
||||
)
|
||||
|
||||
}
|
||||
@@ -1,78 +0,0 @@
|
||||
package ru.megboyzz.dnevnik.screens.ui
|
||||
|
||||
import androidx.compose.foundation.Image
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.PaddingValues
|
||||
import androidx.compose.foundation.layout.Spacer
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.material.*
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.Menu
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.rememberCoroutineScope
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.painter.Painter
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import androidx.navigation.NavController
|
||||
import kotlinx.coroutines.launch
|
||||
import ru.megboyzz.dnevnik.SpacerWidth
|
||||
import ru.megboyzz.dnevnik.ui.theme.mainBlue
|
||||
import ru.megboyzz.dnevnik.ui.theme.white
|
||||
|
||||
@Composable
|
||||
fun MainScaffold(
|
||||
icon: Painter,
|
||||
title: String,
|
||||
/* TODO viewModel */
|
||||
navController: NavController,
|
||||
scaffoldState: ScaffoldState,
|
||||
content: (@Composable (it: PaddingValues) -> Unit),
|
||||
) {
|
||||
val scope = rememberCoroutineScope()
|
||||
Scaffold(
|
||||
scaffoldState = scaffoldState,
|
||||
topBar = {
|
||||
TopAppBar(
|
||||
backgroundColor = mainBlue,
|
||||
contentColor = Color.White
|
||||
) {
|
||||
IconButton(
|
||||
onClick = {
|
||||
val drawerState = scaffoldState.drawerState
|
||||
scope.launch {
|
||||
if (drawerState.isClosed)
|
||||
drawerState.open()
|
||||
else
|
||||
drawerState.close()
|
||||
}
|
||||
}
|
||||
) {
|
||||
|
||||
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,
|
||||
drawerBackgroundColor = mainBlue,
|
||||
drawerContentColor = white,
|
||||
drawerShape = drawerShape,
|
||||
drawerContent = { DrawerContent(navController, scaffoldState) },
|
||||
bottomBar = { BottomBar(navController) }
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,130 @@
|
||||
package ru.megboyzz.dnevnik.screens.ui.main
|
||||
|
||||
import androidx.compose.foundation.Image
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.PaddingValues
|
||||
import androidx.compose.foundation.layout.Spacer
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.material.*
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.ArrowBack
|
||||
import androidx.compose.material.icons.filled.Menu
|
||||
import androidx.compose.material.icons.filled.Settings
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.rememberCoroutineScope
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.painter.Painter
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.graphics.vector.rememberVectorPainter
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import androidx.navigation.NavController
|
||||
import kotlinx.coroutines.launch
|
||||
import ru.megboyzz.dnevnik.AsPainter
|
||||
import ru.megboyzz.dnevnik.AsString
|
||||
import ru.megboyzz.dnevnik.SpacerWidth
|
||||
import ru.megboyzz.dnevnik.screens.ui.BottomBar
|
||||
import ru.megboyzz.dnevnik.screens.ui.DrawerContent
|
||||
import ru.megboyzz.dnevnik.screens.ui.drawerShape
|
||||
import ru.megboyzz.dnevnik.ui.theme.mainBlue
|
||||
import ru.megboyzz.dnevnik.ui.theme.white
|
||||
import ru.megboyzz.dnevnik.R
|
||||
|
||||
@Composable
|
||||
fun MainScaffold(
|
||||
icon: Painter,
|
||||
title: String,
|
||||
/* TODO viewModel */
|
||||
navController: NavController,
|
||||
scaffoldState: ScaffoldState,
|
||||
content: (@Composable (it: PaddingValues) -> Unit),
|
||||
) {
|
||||
val scope = rememberCoroutineScope()
|
||||
|
||||
BaseScaffold(
|
||||
leadingIcon = Icons.Filled.Menu,
|
||||
trailingIcon = icon,
|
||||
onLeadingIconClick = {
|
||||
val drawerState = scaffoldState.drawerState
|
||||
scope.launch {
|
||||
if (drawerState.isClosed)
|
||||
drawerState.open()
|
||||
else
|
||||
drawerState.close()
|
||||
}
|
||||
},
|
||||
title = title,
|
||||
navController = navController,
|
||||
scaffoldState = scaffoldState,
|
||||
bottomBar = { BottomBar(navController) },
|
||||
content = content
|
||||
)
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun BaseScaffold(
|
||||
leadingIcon: ImageVector,
|
||||
trailingIcon: Painter?,
|
||||
onLeadingIconClick: () -> Unit,
|
||||
title: String,
|
||||
navController: NavController,
|
||||
scaffoldState: ScaffoldState,
|
||||
bottomBar: @Composable () -> Unit,
|
||||
content: (@Composable (it: PaddingValues) -> Unit),
|
||||
) {
|
||||
Scaffold(
|
||||
scaffoldState = scaffoldState,
|
||||
topBar = {
|
||||
TopAppBar(
|
||||
backgroundColor = mainBlue,
|
||||
contentColor = Color.White
|
||||
) {
|
||||
IconButton(onClick = onLeadingIconClick) {
|
||||
Icon(
|
||||
imageVector = leadingIcon,
|
||||
contentDescription = "",
|
||||
tint = white
|
||||
)
|
||||
}
|
||||
SpacerWidth(width = 5.dp)
|
||||
Text(
|
||||
text = title,
|
||||
fontSize = 16.sp,
|
||||
color = white
|
||||
)
|
||||
if(trailingIcon != null) {
|
||||
Spacer(Modifier.weight(1f))
|
||||
Box(Modifier.padding(15.dp, 15.dp)) {
|
||||
Image(painter = trailingIcon, contentDescription = "icon")
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
content = content,
|
||||
drawerBackgroundColor = mainBlue,
|
||||
drawerContentColor = white,
|
||||
drawerShape = drawerShape,
|
||||
drawerContent = { DrawerContent(navController, scaffoldState) },
|
||||
bottomBar = bottomBar
|
||||
)
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun SettingsScaffold(
|
||||
onLeave: () -> Unit,
|
||||
scaffoldState: ScaffoldState,
|
||||
navController: NavController,
|
||||
content: @Composable (PaddingValues) -> Unit
|
||||
) {
|
||||
BaseScaffold(
|
||||
leadingIcon = Icons.Filled.ArrowBack,
|
||||
trailingIcon = R.drawable.ic_settings.AsPainter(),
|
||||
onLeadingIconClick = onLeave,
|
||||
title = R.string.title_settings.AsString(),
|
||||
navController = navController,
|
||||
scaffoldState = scaffoldState,
|
||||
bottomBar = {},
|
||||
content = content
|
||||
)
|
||||
}
|
||||
@@ -66,4 +66,9 @@
|
||||
<string name="title_result_mark">Result</string>
|
||||
<string name="title_average_mark">Average</string>
|
||||
<string name="title_deadline">Deadline:</string>
|
||||
<string name="settings_category_accont">Account</string>
|
||||
<string name="settings_category_application">Application</string>
|
||||
<string name="settings_category_author">Author</string>
|
||||
<string name="title_choose_icons">" Select the icons for subjects"</string>
|
||||
<string name="title_enable_notif">Enable notify</string>
|
||||
</resources>
|
||||
@@ -65,4 +65,9 @@
|
||||
<string name="title_result_mark">Итог</string>
|
||||
<string name="title_average_mark">Ср. балл</string>
|
||||
<string name="title_deadline">Выполнить до:</string>
|
||||
<string name="settings_category_accont">Акканут</string>
|
||||
<string name="settings_category_application">Приложение</string>
|
||||
<string name="settings_category_author">Автор</string>
|
||||
<string name="title_choose_icons">Выбрать иконки для предметов</string>
|
||||
<string name="title_enable_notif">Включить уведомления о новых оценках</string>
|
||||
</resources>
|
||||
Reference in New Issue
Block a user