Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
a5971ba
Merge pull request #14 from VectorVanguard/main
Vooidss May 9, 2025
fb6ac73
Merge pull request #19 from VectorVanguard/main
Vooidss May 10, 2025
0c52e47
huinya
NamelessZz May 11, 2025
b0adfb0
Merge branch 'recommendations-menu' of https://github.com/VectorVangu…
NamelessZz May 11, 2025
a976d7e
порофлил
NamelessZz May 11, 2025
b9aa7fe
чото нашаманил требуется вмешательство в MenuFragment
k0rpa4o May 12, 2025
ed98613
Merge remote-tracking branch 'origin/food-menu' into food-menu
k0rpa4o May 12, 2025
9c83d6c
карту сделал длябест селлер
NamelessZz May 12, 2025
11eba98
Merge pull request #22 from VectorVanguard/main
Vooidss May 14, 2025
9f35fa1
что то сделал хз
praes666 May 14, 2025
3b7d325
страница бест селлер
NamelessZz May 14, 2025
8e52693
Доделал баннер
Vooidss May 15, 2025
fd3f106
Merge pull request #25 from VectorVanguard/components
Vooidss May 15, 2025
271e9fb
yes
Vooidss May 15, 2025
2f8c29d
Merge pull request #26 from VectorVanguard/main
Vooidss May 15, 2025
bb50d34
Merge branch 'food-menu' into main
Vooidss May 15, 2025
7c3fbbf
Merge pull request #24 from VectorVanguard/main
Vooidss May 15, 2025
52211a6
Revert "Merge branch 'food-menu' into main"
Vooidss May 15, 2025
b60be14
Подправил
Vooidss May 15, 2025
5840b6c
Merge pull request #27 from VectorVanguard/home-page
Vooidss May 15, 2025
b6eb84a
Merge pull request #28 from VectorVanguard/main
Vooidss May 15, 2025
5e15065
добавил сортировку и исправил ошибку с id tvMenu. ТРЕБУЕТСЯ ВМЕШАТЕЛЬ…
k0rpa4o May 17, 2025
0b0a5d7
Merge remote-tracking branch 'origin/food-menu' into food-menu
k0rpa4o May 17, 2025
8f6a737
Доделал Best Seller
Vooidss May 17, 2025
490c41f
Merge pull request #29 from VectorVanguard/recommendations-menu
Vooidss May 17, 2025
0d238a2
Подправил
Vooidss May 17, 2025
d8af2e7
Сделал рекомендации ( Почти )
Vooidss May 17, 2025
141cd34
Подправил немного
Vooidss May 18, 2025
c87c5a0
Merge pull request #31 from VectorVanguard/recommendations-menu
Vooidss May 18, 2025
4ff89e3
да
Vooidss May 18, 2025
ef50af8
add fooditem
praes666 May 18, 2025
982b9f7
Merge branch 'main' into food-menu
Vooidss May 18, 2025
e247827
Сделал переход на отдельные страницы продукта
Vooidss May 19, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
id("kotlin-kapt")
id("kotlin-parcelize")
}

android {
Expand Down
5 changes: 4 additions & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
android:theme="@style/Theme.Project"
tools:targetApi="31">
<activity
android:name=".Activity.AdvertisingPage"
android:name=".Activity.FoodDetailActivity"
android:exported="false" />
<activity
android:name=".Activity.MainActivity"
Expand All @@ -25,12 +25,15 @@
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".Activity.RecomendationActivity" />
<activity android:name=".Activity.WelcomeActivity" />
<activity android:name=".Activity.LogActivity" />
<activity android:name=".Activity.RegActivity" />
<activity android:name=".Activity.HomeActivity" />
<activity android:name=".Activity.ForgetPasswordActivity" />
<activity android:name=".Activity.FavoritesActivity" />
<activity android:name=".Activity.BestSellerActivity" />
<activity android:name=".Activity.AdverstsingPageActivity" />

<meta-data
android:name="preloaded_fonts"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package com.example.projectfigma.Activity

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.example.projectfigma.Fragments.BottomPanelFragment
import com.example.projectfigma.R
import com.example.projectfigma.Util.StatusBar
import com.example.projectfigma.databinding.ActivityAdvertisingPageBinding
import com.example.projectfigma.databinding.ActivityFavoritesBinding

class AdverstsingPageActivity : AppCompatActivity() {
private lateinit var binding: ActivityAdvertisingPageBinding

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

binding = ActivityAdvertisingPageBinding.inflate(layoutInflater)
setContentView(binding.root)
StatusBar.hideStatusBar(window)

supportFragmentManager.beginTransaction()
.replace(R.id.buttonPanel, BottomPanelFragment())
.commit()
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package com.example.projectfigma.Activity

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.example.projectfigma.Fragments.BottomPanelFragment
import com.example.projectfigma.R
import com.example.projectfigma.Util.StatusBar
import com.example.projectfigma.databinding.ActivityAdvertisingPageBinding
import com.example.projectfigma.databinding.ActivityBestSellerBinding

class BestSellerActivity : AppCompatActivity() {
private lateinit var binding: ActivityBestSellerBinding

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

binding = ActivityBestSellerBinding.inflate(layoutInflater)
setContentView(binding.root)
StatusBar.hideStatusBar(window)

supportFragmentManager.beginTransaction()
.replace(R.id.buttonPanel, BottomPanelFragment())
.commit()
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
package com.example.projectfigma.Activity

import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.widget.TextView
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import com.bumptech.glide.Glide
import com.example.projectfigma.DataBase.DataBase
import com.example.projectfigma.Entites.Dishes
import com.example.projectfigma.Fragments.BottomPanelFragment
import com.example.projectfigma.R
import com.example.projectfigma.Util.StatusBar
import com.example.projectfigma.databinding.ActivityFavoritesBinding
import com.example.projectfigma.databinding.ActivityFoodDetailBinding
import kotlin.time.toDuration

class FoodDetailActivity : AppCompatActivity() {
private lateinit var binding: ActivityFoodDetailBinding
private lateinit var dataBase : DataBase

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

dataBase = DataBase.getDb(this)

binding = ActivityFoodDetailBinding.inflate(layoutInflater)
setContentView(binding.root)
StatusBar.hideStatusBar(window)

supportFragmentManager.beginTransaction()
.replace(R.id.buttonPanel, BottomPanelFragment())
.commit()

binding.exitArrow.setOnClickListener(){
startActivity(Intent(this@FoodDetailActivity,HomeActivity::class.java))
}

val dish: Dishes? = intent.getParcelableExtra("dish")
dish?.let {
binding.nameDishHeader.text = it.name
binding.tvRating.text = it.rating.toString()
binding.textPrice.text = "$" + it.price.toString()
Glide.with(binding.imgFood)
.load(dish.imageUri)
.into(binding.imgFood)

binding.dishDescription.text = it.description
}
}

private suspend fun likeDish(dish: Dishes) {

val user = dataBase.getSessionDao().getSession()
?.let { it.userEmail?.let { it1 -> dataBase.getUserDao().getUserByEmail(it1) } }

val favoriteDishes:List<Int> = user?.favoriteDishesId ?: emptyList<Int>()
if (favoriteDishes.contains(dish.id)) {
val updatedDishes: List<Int> = favoriteDishes.filter { it != dish.id }
dataBase.getUserDao().updateFavoriteDishes(user?.id!!, updatedDishes)
} else {
val updatedDishes = favoriteDishes + dish.id
dataBase.getUserDao().updateFavoriteDishes(user?.id!!, updatedDishes)
}
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.example.projectfigma.Activity

import android.content.Intent
import android.os.Bundle
import android.widget.TextView
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.GravityCompat
Expand All @@ -16,6 +18,7 @@ import com.example.projectfigma.Entites.User
import com.example.projectfigma.Fragments.*
import com.example.projectfigma.R
import com.example.projectfigma.Util.StatusBar
import com.example.projectfigma.Util.SwitchCard

class HomeActivity : AppCompatActivity(),
HeaderButtonsFragment.Listener {
Expand All @@ -32,8 +35,6 @@ class HomeActivity : AppCompatActivity(),
setContentView(R.layout.activity_home)
StatusBar.hideStatusBar(window)

drawer = findViewById(R.id.drawer_layout)

val db = DataBase.getDb(this)
dao = db.getDishesDao()
userDao = db.getUserDao()
Expand All @@ -43,19 +44,22 @@ class HomeActivity : AppCompatActivity(),
user = userDao.getUserByEmail(email)
}

drawer = findViewById<DrawerLayout>(R.id.drawer_layout)

adapter = BestSellerAdapter(emptyList()) { item ->
SwitchCard.switchDish(
item,
this,
FoodDetailActivity::class.java
)
}
val rv = findViewById<RecyclerView>(R.id.rvBestSellers).apply {
layoutManager = LinearLayoutManager(
this@HomeActivity,
LinearLayoutManager.HORIZONTAL,
false
)
adapter = BestSellerAdapter(emptyList()) { item: Dishes ->
Toast.makeText(
this@HomeActivity,
"Clicked: ${item.price}",
Toast.LENGTH_SHORT
).show()
}.also { this@HomeActivity.adapter = it }
adapter = this@HomeActivity.adapter
}

dao.getBestSellersWithLimit(4).observe(this) { list ->
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.example.projectfigma.Activity

import android.os.Bundle
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import com.example.projectfigma.Fragments.BottomPanelFragment
import com.example.projectfigma.R
import com.example.projectfigma.Util.StatusBar
import com.example.projectfigma.databinding.ActivityAdvertisingPageBinding
import com.example.projectfigma.databinding.ActivityRecomendationBinding

class RecomendationActivity : AppCompatActivity() {
private lateinit var binding: ActivityRecomendationBinding

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

binding = ActivityRecomendationBinding.inflate(layoutInflater)
setContentView(binding.root)
StatusBar.hideStatusBar(window)

supportFragmentManager.beginTransaction()
.replace(R.id.buttonPanel, BottomPanelFragment())
.commit()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import com.example.projectfigma.R

class BestSellerAdapter(
private var items: List<Dishes>,
private val onClick: (Dishes) -> Unit
private val switchToSelfPage: (Dishes) -> Unit
) : RecyclerView.Adapter<BestSellerAdapter.VH>() {

inner class VH(view: View) : RecyclerView.ViewHolder(view) {
Expand All @@ -26,7 +26,7 @@ class BestSellerAdapter(
.centerCrop()
.into(ivFood)

itemView.setOnClickListener { onClick(item) }
itemView.setOnClickListener { switchToSelfPage(item) }
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@ import kotlin.coroutines.coroutineContext

class FavoriteFoodAdapter(
private val items: MutableList<Dishes>,
private val onFavoriteClick: (dish: Dishes) -> Unit
private val onFavoriteClick: (dish: Dishes) -> Unit,
private val switchToSelfPage: (Dishes) -> Unit
) : RecyclerView.Adapter<FavoriteFoodAdapter.VH>() {

inner class VH(view: View) : RecyclerView.ViewHolder(view) {
Expand Down Expand Up @@ -46,6 +47,8 @@ class FavoriteFoodAdapter(

holder.imgFavorite.setImageResource(R.drawable.ic_heart_border)
holder.imgFavorite.setOnClickListener { onFavoriteClick(dish) }

holder.itemView.setOnClickListener { switchToSelfPage(dish) }
}

override fun getItemCount(): Int = items.size
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package com.example.projectfigma.Adapters

import android.net.Uri
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
import com.example.projectfigma.Entites.Dishes
import com.example.projectfigma.R

class MainBestSellerAdapter (
private var dishes: List<Dishes>,
private val switchToSelfPage: (Dishes) -> Unit
) :
RecyclerView.Adapter<MainBestSellerAdapter.DishViewHolder>() {

inner class DishViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val image: ImageView = itemView.findViewById(R.id.dishImage)
val title: TextView = itemView.findViewById(R.id.dishTitle)
val description: TextView = itemView.findViewById(R.id.dishDescription)
val price: TextView = itemView.findViewById(R.id.dishPrice)
val rating: TextView = itemView.findViewById(R.id.tvRating)
val category: ImageView = itemView.findViewById(R.id.iconCategory)
}

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): DishViewHolder {
val view = LayoutInflater.from(parent.context).inflate(R.layout.item_dish_best_seller, parent, false)
return DishViewHolder(view)
}

override fun onBindViewHolder(holder: DishViewHolder, position: Int) {
val dish = dishes[position]

Glide.with(holder.itemView.context)
.load(Uri.parse(dish.imageUri))
.into(holder.image)

holder.category.setImageResource(dish.category.iconRes)
holder.title.text = dish.name
holder.description.text = dish.description
holder.price.text = "$${dish.price}"
holder.rating.text = "${dish.rating}"

holder.itemView.setOnClickListener { switchToSelfPage(dish) }
}

override fun getItemCount(): Int = dishes.size

fun updateData(newList: List<Dishes>) {
dishes = newList
notifyDataSetChanged()
}
}
Loading