Prechádzať zdrojové kódy

Комментарии

Anastasia 3 dní pred
rodič
commit
7ba57f182e

+ 5 - 5
EatWell/app/src/main/java/com/example/eatwell/Resources.kt

@@ -12,11 +12,10 @@ import com.example.eatwell.model.Recipes
 import com.example.eatwell.view.MainViewModel
 
 class Resources {
-    companion object {
+    companion object { // храним разные списки чтобы потом к ним обращаться, статический
         var viewModel = MainViewModel()
-        //       var favourites: MutableList<Track> by mutableStateOf(mutableListOf())
-        //val favourites = remember { mutableStateListOf<Track>()}
-        var diets: MutableList<Diets> by mutableStateOf(mutableListOf())
+
+        var diets: MutableList<Diets> by mutableStateOf(mutableListOf()) //хранит список объектов диеты, mutableStateOf для отслеживания изменений
         var categories: MutableList<Category> by mutableStateOf(mutableListOf())
         var recipes: MutableList<Recipes> by mutableStateOf(mutableListOf())
         var ingredients: MutableList<Ingredients> by mutableStateOf(mutableListOf())
@@ -25,6 +24,7 @@ class Resources {
         var myRecipes: MutableList<Recipes> by mutableStateOf(mutableListOf())
         var dishes: MutableList<Dish> by mutableStateOf(mutableListOf())
         lateinit var recept: Recipes;
-        // Состояние для выбранных рецептов
+    // lateinit указывает что переменная будет инициализирована позже, если я буду использовать до инициализации до выбросит исключение либо var recept: Recipes? = null
+
     }
 }

+ 1 - 1
EatWell/app/src/main/java/com/example/eatwell/model/Fridge.kt

@@ -4,7 +4,7 @@ import kotlinx.serialization.Serializable
 
 @Serializable
 data class Fridge(
-    val id: Int? = null,
+    val id: Int? = null, //быть либо числом, либо null
     val ingredients: Int,
     val user_id: String
 )

+ 9 - 9
EatWell/app/src/main/java/com/example/eatwell/view/mainActivity/Auth.kt

@@ -59,10 +59,10 @@ import kotlinx.coroutines.launch
 //@Preview
 @Composable
 fun auth(navController: NavHostController) {
-    val viewModel = MainViewModel()
+    val viewModel = MainViewModel() // Создаем экземпляр MainViewModel
     val email = remember { mutableStateOf("") }
     val password = remember { mutableStateOf("") }
-    val scope = rememberCoroutineScope()
+    val scope = rememberCoroutineScope() //для асинхронного выполнения задач
 
     Box(
         modifier = Modifier
@@ -124,7 +124,7 @@ fun auth(navController: NavHostController) {
                     )
                     TextField(
                         value = email.value,
-                        onValueChange = { newText -> email.value = newText },
+                        onValueChange = { newText -> email.value = newText }, //обновление текста
                         shape = RoundedCornerShape(15.dp),
                         colors = TextFieldDefaults.textFieldColors(
                             containerColor = fon,
@@ -154,7 +154,7 @@ fun auth(navController: NavHostController) {
                     //2
                     Spacer(modifier = Modifier.height(15.dp))
 
-                    var passwordVisibility by remember { mutableStateOf(false) }
+                    var passwordVisibility by remember { mutableStateOf(false) } // для упраления видимостью пароля
 
                     Text(
                         text = "Password",
@@ -165,7 +165,7 @@ fun auth(navController: NavHostController) {
                     )
                     TextField(
                         value = password.value,
-                        visualTransformation = if (passwordVisibility) VisualTransformation.None else PasswordVisualTransformation(),
+                        visualTransformation = if (passwordVisibility) VisualTransformation.None else PasswordVisualTransformation(), // если тру то  обычный текст если фолс то скрыт
                         trailingIcon = {
                             IconButton(onClick = {
                                 passwordVisibility = !passwordVisibility
@@ -183,7 +183,7 @@ fun auth(navController: NavHostController) {
                                 }
                             }
                         },
-                        onValueChange = { newText -> password.value = newText },
+                        onValueChange = { newText -> password.value = newText }, // обновляем значение пароля
                         shape = RoundedCornerShape(15.dp),
                         colors = TextFieldDefaults.textFieldColors(
                             containerColor = fon,
@@ -210,14 +210,14 @@ fun auth(navController: NavHostController) {
                     )
                     Spacer(modifier = Modifier.height(30.dp))
 
-                    val context = LocalContext.current
+                    val context = LocalContext.current //необходим для отображения сообщений
                     Button(
                         onClick = {
                             if (email.value.isNotEmpty() && password.value.isNotEmpty()) {
                                 viewModel.onSignInEmailPassword(email.value, password.value)
-                                scope.launch {
+                                scope.launch { //запускаем асинхронную операцию
                                     delay(2000)
-                                    if (Constant.supabase.auth.currentUserOrNull() != null) {
+                                    if (Constant.supabase.auth.currentUserOrNull() != null) { //если пользователь авториз то вход
                                         println("Current User: ${Constant.supabase.auth.currentUserOrNull()!!.email}")
                                         Toast.makeText(
                                             context,

+ 3 - 3
EatWell/app/src/main/java/com/example/eatwell/view/mainActivity/Auth2.kt

@@ -51,7 +51,7 @@ import kotlinx.coroutines.launch
 //@Preview
 @Composable
 fun auth2(navController: NavHostController) {
-    val viewModel = MainViewModel()
+    val viewModel = MainViewModel() // Создаем экземпляр MainViewModel
     val email = remember { mutableStateOf("") }
     val password = remember { mutableStateOf("") }
     val scope = rememberCoroutineScope()
@@ -120,7 +120,7 @@ fun auth2(navController: NavHostController) {
                     )
                     TextField(
                         value = email.value,
-                        onValueChange = { newText -> email.value = newText },
+                        onValueChange = { newText -> email.value = newText }, //обновление текста
                         shape = RoundedCornerShape(15.dp),
                         colors = TextFieldDefaults.textFieldColors(
                             containerColor = fon,
@@ -150,7 +150,7 @@ fun auth2(navController: NavHostController) {
                     //2
                     Spacer(modifier = Modifier.height(15.dp))
 
-                    var passwordVisibility by remember { mutableStateOf(false) }
+                    var passwordVisibility by remember { mutableStateOf(false) } // для упраления видимостью пароля
 
                     Text(
                         text = "Password",

+ 6 - 5
EatWell/app/src/main/java/com/example/eatwell/view/mainActivity/Dish.kt

@@ -65,13 +65,14 @@ import io.github.jan.supabase.gotrue.auth
 //@Preview
 @Composable
 fun dish(navController: NavController) {
+    // фильтруем и добавляем рецепты в списов лист
     var list = remember { mutableStateListOf<Recipes>() }
-    for (j in 0..Resources.dishes.size-1) {
+    for (j in 0..Resources.dishes.size-1) { // проходимся по списку блю и рецептов
         for (i in 0..Resources.recipes.size - 1) {
-            if(Resources.dishes.get(j).recipes == Resources.recipes.get(i).id &&
+            if(Resources.dishes.get(j).recipes == Resources.recipes.get(i).id && //проверяем совпадает ли айди пользователя в списке диш с текущем польхователем
                 Resources.dishes.get(j).user_id == Constant.supabase.auth.currentUserOrNull()!!.id) {
 
-                list.add(Resources.recipes.get(i))
+                list.add(Resources.recipes.get(i)) // добав в список лист
             }
         }
     }
@@ -134,14 +135,14 @@ fun dish(navController: NavController) {
                             modifier = Modifier.fillMaxSize()
                         ) {
 
-                            items(list.size) { itemId ->
+                            items(list.size) { itemId -> // определяем количество элементов itemId это индекс элемента в списке
                                 Image(
                                     painter = rememberImagePainter(
                                         list.get(
                                             itemId
                                         ).image
                                     ),
-                                    contentDescription = "Image in LazyRow - $itemId",
+                                    contentDescription = "Image - $itemId",
                                     modifier = Modifier
                                         .padding(
                                             top = 10.dp,

+ 7 - 7
EatWell/app/src/main/java/com/example/eatwell/view/mainActivity/Fridge.kt

@@ -66,12 +66,12 @@ import io.github.jan.supabase.gotrue.auth
 //@Preview
 @Composable
 fun fridge(navController: NavController) {
-    Resources.viewModel.getFridge()
-    var chosenIngredients = remember { mutableStateListOf<Ingredients>() }
+    Resources.viewModel.getFridge()  // вызываем метод фридже
+    var chosenIngredients = remember { mutableStateListOf<Ingredients>() } //создаем изменяемый список для ингредиентов для изображения выбранных элементов
 
     Log.d("Продукты: ", Resources.chosenIngredients.toString())
-    chosenIngredients.clear()
-    for (i in 0..Resources.chosenIngredients.size - 1) {
+    chosenIngredients.clear() // очищаем и подготавливаем для новых данных
+    for (i in 0..Resources.chosenIngredients.size - 1) { // копируем содержимое списка в chosenIngredients
         chosenIngredients.add(Resources.chosenIngredients.get(i))
     }
     Box(
@@ -202,7 +202,7 @@ fun fridge(navController: NavController) {
                             .fillMaxSize(),
                         verticalArrangement = Arrangement.spacedBy(16.dp)
                     ) {
-                        items(chosenIngredients) { item ->
+                        items(chosenIngredients) { item -> // итерируем по элементам списка для отображения этиъ элементов
                             Row(
                                 modifier = Modifier
                                     .fillMaxWidth(),
@@ -223,11 +223,11 @@ fun fridge(navController: NavController) {
                                     fontWeight = FontWeight.Bold,
                                     fontFamily = FontFamily.Monospace
                                 )
-                                Button(onClick = {
+                                Button(onClick = { // удаляем ингредиент из списка
                                     chosenIngredients.remove(
                                         item
                                     )
-                                    Resources.viewModel.deleteIngredient(item.id)
+                                    Resources.viewModel.deleteIngredient(item.id) //вызываем функцию удаления
                                 },Modifier
                                     .background(Color.Transparent),
                                     colors = ButtonDefaults.buttonColors(containerColor = knopka)