Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 1 addition & 3 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,6 @@
android:supportsRtl="true"
android:theme="@style/Theme.Project"
tools:targetApi="31">
<activity
android:name=".Activity.AdvertisingPage"
android:exported="false" />
<activity
android:name=".Activity.MainActivity"
android:exported="true">
Expand All @@ -31,6 +28,7 @@
<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
Expand Down

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
@@ -1,6 +1,7 @@
package com.example.projectfigma.Activity

import android.os.Bundle
import android.widget.TextView
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.GravityCompat
Expand Down Expand Up @@ -58,6 +59,9 @@ class HomeActivity : AppCompatActivity(),
}.also { this@HomeActivity.adapter = it }
}




dao.getBestSellersWithLimit(4).observe(this) { list ->
adapter.updateList(list)
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
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>) :
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 для загрузки изображения
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}"
}

override fun getItemCount(): Int = dishes.size

fun updateData(newList: List<Dishes>) {
dishes = newList
notifyDataSetChanged()
}
}
16 changes: 14 additions & 2 deletions app/src/main/java/com/example/projectfigma/Fragments/BestSeller.kt
Original file line number Diff line number Diff line change
@@ -1,18 +1,23 @@
package com.example.projectfigma.Fragments

import android.content.Intent
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import com.example.projectfigma.Activity.AdverstsingPageActivity
import com.example.projectfigma.Activity.BestSellerActivity
import com.example.projectfigma.Activity.RegActivity
import com.example.projectfigma.R
import com.example.projectfigma.databinding.FragmentBestSellerBinding
import com.example.projectfigma.databinding.FragmentDividingLineBinding

class BestSeller : Fragment() {

private var _binding: FragmentBestSellerBinding? = null
private val binding get() = _binding!!
private val binding get() = _binding

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Expand All @@ -24,6 +29,13 @@ class BestSeller : Fragment() {
savedInstanceState: Bundle?
): View {
_binding = FragmentBestSellerBinding.inflate(inflater, container, false)
return binding.root

binding?.tvViewAll?.setOnClickListener{
val intent = Intent(requireContext(), BestSellerActivity::class.java)
startActivity(intent)
requireActivity().finish()
}

return binding!!.root
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package com.example.projectfigma.Fragments

import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.example.projectfigma.Adapters.MainBestSellerAdapter
import com.example.projectfigma.DAO.DishesDao
import com.example.projectfigma.DataBase.DataBase
import com.example.projectfigma.Entites.Dishes
import com.example.projectfigma.R

class MainBestSeller : Fragment(R.layout.fragment_main_best_seller) {

private lateinit var recyclerView: RecyclerView
private lateinit var adapter: MainBestSellerAdapter
private lateinit var database: DataBase
private lateinit var dishesDao: DishesDao

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

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)

recyclerView = view.findViewById(R.id.popularRecyclerView)
recyclerView.layoutManager = GridLayoutManager(context, 2)

database = DataBase.getDb(requireContext())
dishesDao = database.getDishesDao()

dishesDao.getBestSellers().observe(viewLifecycleOwner) { dishList ->
adapter = MainBestSellerAdapter(dishList)
recyclerView.adapter = adapter
}
}
}
84 changes: 28 additions & 56 deletions app/src/main/res/layout/activity_best_seller.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background"
tools:context=".BestSellerActivity">
android:background="@drawable/background">

<!-- Заголовок -->
<androidx.constraintlayout.widget.ConstraintLayout
Expand All @@ -22,76 +21,49 @@
android:textColor="@android:color/white"
android:textSize="28sp"
android:textStyle="bold"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.656" />

<ImageView
android:id="@+id/exitArrow"
android:layout_width="24dp"
android:layout_height="24dp"
android:src="@drawable/exit_arrow"
android:layout_width="15dp"
android:layout_height="15dp"
android:layout_marginStart="16dp"
android:src="@drawable/exit_arrow"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/loginHeader"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent" />
app:layout_constraintVertical_bias="0.632" />
</androidx.constraintlayout.widget.ConstraintLayout>

<!-- Основной контент -->
<ScrollView
android:layout_width="0dp"
android:layout_height="0dp"
android:fillViewport="true"
app:layout_constraintTop_toBottomOf="@id/headerLayout"
app:layout_constraintBottom_toTopOf="@+id/bottomPanel"
<!-- Нижняя панель -->

<FrameLayout
android:layout_width="match_parent"
android:layout_height="654dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent">
app:layout_constraintTop_toBottomOf="@+id/headerLayout">

<LinearLayout
<fragment
android:id="@+id/food_favorite_fragment"
android:name="com.example.projectfigma.Fragments.MainBestSeller"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@drawable/white_top_rounded"
android:padding="16dp">

<!-- Подзаголовок -->
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Discover our most popular dishes!"
android:textColor="@android:color/holo_orange_dark"
android:textSize="18sp"
android:textStyle="bold"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="16dp" />
android:layout_height="match_parent"
tools:layout="@layout/fragment_main_best_seller" />

<!-- Grid из карточек -->
<GridLayout
android:id="@+id/gridLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:columnCount="2"
android:rowCount="3"
android:alignmentMode="alignMargins"
android:useDefaultMargins="true">
</FrameLayout>

<include layout="@layout/item_dish_best_seller" />
<include layout="@layout/item_dish_best_seller" />
<include layout="@layout/item_dish_best_seller" />
<include layout="@layout/item_dish_best_seller" />
<include layout="@layout/item_dish_best_seller" />
<include layout="@layout/item_dish_best_seller" />
</GridLayout>
</LinearLayout>
</ScrollView>

<!-- Нижняя панель -->
<include
android:id="@+id/bottomPanel"
layout="@layout/fragment_bottom_panel"
android:layout_width="match_parent"
android:layout_width="wrap_content"
android:layout_height="55dp"
app:layout_constraintBottom_toBottomOf="parent" />
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
36 changes: 36 additions & 0 deletions app/src/main/res/layout/fragment_main_best_seller.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">

<TextView
android:id="@+id/titleText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="Discover our most popular dishes!"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
android:textColor="#FF5722"
android:textAlignment="center"
android:paddingStart="10dp"
android:textSize="20dp"
android:paddingEnd="10dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginTop="16dp"/>

<androidx.recyclerview.widget.RecyclerView
android:id="@+id/popularRecyclerView"
android:layout_width="0dp"
android:layout_height="0dp"
android:padding="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/titleText"
app:layout_constraintVertical_bias="0.0" />

</androidx.constraintlayout.widget.ConstraintLayout>
Loading