Skip to content

Commit b6eb84a

Browse files
authored
Merge pull request #28 from VectorVanguard/main
Update
2 parents 3b7d325 + 5840b6c commit b6eb84a

20 files changed

Lines changed: 553 additions & 42 deletions

app/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ dependencies {
4040
implementation("androidx.constraintlayout:constraintlayout:2.2.1")
4141

4242
implementation("androidx.room:room-ktx:2.7.1")
43+
implementation(libs.androidx.activity)
4344
kapt("androidx.room:room-compiler:2.7.1")
4445

4546
testImplementation("junit:junit:4.13.2")

app/src/main/AndroidManifest.xml

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@
1313
android:supportsRtl="true"
1414
android:theme="@style/Theme.Project"
1515
tools:targetApi="31">
16+
<activity
17+
android:name=".Activity.AdvertisingPage"
18+
android:exported="false" />
1619
<activity
1720
android:name=".Activity.MainActivity"
1821
android:exported="true">
@@ -22,12 +25,13 @@
2225
<category android:name="android.intent.category.LAUNCHER" />
2326
</intent-filter>
2427
</activity>
25-
<activity android:name=".Activity.WelcomeActivity"/>
26-
<activity android:name=".Activity.LogActivity"/>
27-
<activity android:name=".Activity.RegActivity"/>
28-
<activity android:name=".Activity.HomeActivity"/>
29-
<activity android:name=".Activity.ForgetPasswordActivity"/>
30-
<activity android:name=".Activity.FavoritesActivity"/>
28+
<activity android:name=".Activity.WelcomeActivity" />
29+
<activity android:name=".Activity.LogActivity" />
30+
<activity android:name=".Activity.RegActivity" />
31+
<activity android:name=".Activity.HomeActivity" />
32+
<activity android:name=".Activity.ForgetPasswordActivity" />
33+
<activity android:name=".Activity.FavoritesActivity" />
34+
<activity android:name=".Activity.AdverstsingPageActivity" />
3135

3236
<meta-data
3337
android:name="preloaded_fonts"
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.example.projectfigma.Activity
2+
3+
import android.os.Bundle
4+
import androidx.appcompat.app.AppCompatActivity
5+
import com.example.projectfigma.Fragments.BottomPanelFragment
6+
import com.example.projectfigma.R
7+
import com.example.projectfigma.Util.StatusBar
8+
import com.example.projectfigma.databinding.ActivityAdvertisingPageBinding
9+
import com.example.projectfigma.databinding.ActivityFavoritesBinding
10+
11+
class AdverstsingPageActivity : AppCompatActivity() {
12+
private lateinit var binding: ActivityAdvertisingPageBinding
13+
14+
override fun onCreate(savedInstanceState: Bundle?) {
15+
super.onCreate(savedInstanceState)
16+
17+
binding = ActivityAdvertisingPageBinding.inflate(layoutInflater)
18+
setContentView(binding.root)
19+
StatusBar.hideStatusBar(window)
20+
21+
supportFragmentManager.beginTransaction()
22+
.replace(R.id.buttonPanel, BottomPanelFragment())
23+
.commit()
24+
}
25+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.example.projectfigma.Activity
2+
3+
import android.graphics.Paint
4+
import android.os.Bundle
5+
import android.widget.TextView
6+
import androidx.activity.enableEdgeToEdge
7+
import androidx.appcompat.app.AppCompatActivity
8+
import androidx.core.view.ViewCompat
9+
import androidx.core.view.WindowInsetsCompat
10+
import com.example.projectfigma.R
11+
12+
class AdvertisingPage : AppCompatActivity() {
13+
override fun onCreate(savedInstanceState: Bundle?) {
14+
super.onCreate(savedInstanceState)
15+
enableEdgeToEdge()
16+
setContentView(R.layout.activity_advertising_page)
17+
val tv: TextView = findViewById(R.id.customtext1piska)
18+
tv.paintFlags = tv.paintFlags or Paint.STRIKE_THRU_TEXT_FLAG
19+
20+
}
21+
}

app/src/main/java/com/example/projectfigma/Adapters/PromoAdapter.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,26 @@ import android.view.View
55
import android.view.ViewGroup
66
import android.widget.ImageView
77
import android.widget.TextView
8+
import androidx.cardview.widget.CardView
89
import androidx.recyclerview.widget.RecyclerView
910
import com.example.projectfigma.Entites.Dishes
1011
import com.example.projectfigma.R
1112

12-
class PromoAdapter(private var items: List<Dishes>) :
13+
class PromoAdapter(
14+
private var items: List<Dishes>,
15+
private val onBannerClick: () -> Unit) :
1316
RecyclerView.Adapter<PromoAdapter.VH>() {
1417

1518
inner class VH(view: View) : RecyclerView.ViewHolder(view) {
1619
private val image: ImageView = view.findViewById(R.id.promo_image)
1720
private val title: TextView = view.findViewById(R.id.title)
1821
private val discount: TextView = view.findViewById(R.id.discount)
22+
private val fullCard: CardView = view.findViewById(R.id.fullCard)
1923

2024
fun bind(item: Dishes) {
2125
title.text = "Experience our delicious new dish"
2226
discount.text = "${30}% OFF"
27+
fullCard.setOnClickListener { onBannerClick() }
2328
}
2429
}
2530

app/src/main/java/com/example/projectfigma/Fragments/BannerFood.kt

Lines changed: 31 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,85 +1,91 @@
11
package com.example.projectfigma.Fragments
22

3+
import android.content.Intent
34
import android.os.Bundle
45
import android.os.Handler
56
import android.os.Looper
67
import androidx.fragment.app.Fragment
78
import android.view.LayoutInflater
89
import android.view.View
910
import android.view.ViewGroup
11+
import androidx.lifecycle.lifecycleScope
1012
import androidx.viewpager2.widget.ViewPager2
13+
import com.example.projectfigma.Activity.AdverstsingPageActivity
14+
import com.example.projectfigma.Activity.LogActivity
1115
import com.example.projectfigma.Adapters.PromoAdapter
1216
import com.example.projectfigma.DataBase.DataBase
1317
import com.example.projectfigma.R
1418
import com.example.projectfigma.databinding.FragmentBannerFoodBinding
1519
import com.example.projectfigma.databinding.FragmentBestSellerBinding
1620
import com.google.android.material.tabs.TabLayout
1721
import com.google.android.material.tabs.TabLayoutMediator
22+
import kotlinx.coroutines.Dispatchers
23+
import kotlinx.coroutines.delay
24+
import kotlinx.coroutines.isActive
25+
import kotlinx.coroutines.launch
26+
import kotlinx.coroutines.withContext
1827

1928
class BannerFood : Fragment() {
2029
private var _binding: FragmentBannerFoodBinding? = null
2130
private val binding get() = _binding!!
2231
private lateinit var promoAdapter: PromoAdapter
2332

24-
25-
override fun onCreate(savedInstanceState: Bundle?) {
26-
27-
super.onCreate(savedInstanceState)
33+
override fun onCreateView(
34+
inflater: LayoutInflater,
35+
container: ViewGroup?,
36+
savedInstanceState: Bundle?
37+
): View {
38+
_binding = FragmentBannerFoodBinding.inflate(inflater, container, false)
39+
return binding.root
2840
}
2941

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

3345
// 1) Инициализируем адаптер
34-
promoAdapter = PromoAdapter(emptyList())
46+
promoAdapter = PromoAdapter(emptyList()) {
47+
val intent = Intent(requireContext(), AdverstsingPageActivity::class.java)
48+
startActivity(intent)
49+
requireActivity().finish()
50+
}
3551
binding.viewPager.adapter = promoAdapter
3652

3753
// 2) Настраиваем TabLayoutMediator, сразу задаём иконки
3854
TabLayoutMediator(binding.tabLayout, binding.viewPager) { tab, _ ->
39-
tab.setIcon(R.drawable.tab_indicator_unselected)
55+
tab.setIcon(com.example.projectfigma.R.drawable.tab_indicator_unselected)
4056
}.attach()
4157

42-
// 3) Подписываемся на смену вкладки, чтобы менять иконки
58+
// 3) Слушаем смену вкладки для изменения иконки
4359
binding.tabLayout.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
4460
override fun onTabSelected(tab: TabLayout.Tab) {
45-
tab.setIcon(R.drawable.tab_indicator_selected)
61+
tab.setIcon(com.example.projectfigma.R.drawable.tab_indicator_selected)
4662
}
4763

4864
override fun onTabUnselected(tab: TabLayout.Tab) {
49-
tab.setIcon(R.drawable.tab_indicator_unselected)
65+
tab.setIcon(com.example.projectfigma.R.drawable.tab_indicator_unselected)
5066
}
5167

5268
override fun onTabReselected(tab: TabLayout.Tab) {}
5369
})
5470

55-
// 4) Тут же можете запустить автопрокрутку, если она нужна в фрагменте
56-
val handler = Handler(Looper.getMainLooper())
57-
handler.postDelayed(object : Runnable {
58-
override fun run() {
71+
// 4) Автопрокрутка с помощью корутины
72+
viewLifecycleOwner.lifecycleScope.launch(Dispatchers.Main) {
73+
while (isActive) {
74+
delay(4000)
5975
if (promoAdapter.itemCount > 1) {
6076
val next = (binding.viewPager.currentItem + 1) % promoAdapter.itemCount
6177
binding.viewPager.setCurrentItem(next, true)
6278
}
63-
handler.postDelayed(this, 4000)
6479
}
65-
}, 4000)
80+
}
6681

67-
// 5) А обновление списка (LiveData) можно тоже повесить здесь:
82+
// 5) Обновление списка из БД
6883
val dao = DataBase.getDb(requireContext()).getDishesDao()
6984
dao.getBestSellers().observe(viewLifecycleOwner) { list ->
7085
promoAdapter.updateList(list)
7186
}
7287
}
7388

74-
override fun onCreateView(
75-
inflater: LayoutInflater,
76-
container: ViewGroup?,
77-
savedInstanceState: Bundle?
78-
): View {
79-
_binding = FragmentBannerFoodBinding.inflate(inflater, container, false)
80-
return binding.root
81-
}
82-
8389
override fun onDestroyView() {
8490
super.onDestroyView()
8591
_binding = null
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
2-
<solid android:color="#80000000"/>
3-
<corners android:radius="8dp"/>
2+
<solid android:color="@color/white"/>
3+
<corners android:radius="50dp"/>
44
</shape>
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<shape xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:shape="rectangle">
4+
5+
<solid android:color="@color/organe" /> <!-- Твой цвет фона -->
6+
7+
<corners android:radius="50dp" /> <!-- Радиус скругления -->
8+
</shape>
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
2+
<solid android:color="@color/white"/>
3+
<corners android:radius="25dp"/>
4+
</shape>
3.53 KB
Loading

0 commit comments

Comments
 (0)