diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 51b2a20..2b8add7 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -15,6 +15,9 @@ android:theme="@style/Theme.Foodify" tools:replace="android:theme" tools:targetApi="31"> + diff --git a/app/src/main/java/com/capstone/foodify/Activity/FoodDetailActivity.java b/app/src/main/java/com/capstone/foodify/Activity/FoodDetailActivity.java index c96c87e..5c0c0bf 100644 --- a/app/src/main/java/com/capstone/foodify/Activity/FoodDetailActivity.java +++ b/app/src/main/java/com/capstone/foodify/Activity/FoodDetailActivity.java @@ -188,6 +188,14 @@ public class FoodDetailActivity extends AppCompatActivity { } } }); + + //Move to shop detail screen when onClick + shopName_txt.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + startActivity(new Intent(FoodDetailActivity.this, ShopDetailActivity.class)); + } + }); } private Basket getFoodExistInBasket(String foodId){ diff --git a/app/src/main/java/com/capstone/foodify/Activity/ShopDetailActivity.java b/app/src/main/java/com/capstone/foodify/Activity/ShopDetailActivity.java new file mode 100644 index 0000000..baf7ceb --- /dev/null +++ b/app/src/main/java/com/capstone/foodify/Activity/ShopDetailActivity.java @@ -0,0 +1,64 @@ +package com.capstone.foodify.Activity; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import android.os.Bundle; +import android.view.View; +import android.widget.ImageView; + +import com.capstone.foodify.Model.Food.Food; +import com.capstone.foodify.Model.Food.FoodFavoriteAdapter; +import com.capstone.foodify.Model.Food.FoodShopAdapter; +import com.capstone.foodify.R; +import com.google.android.material.appbar.CollapsingToolbarLayout; +import com.squareup.picasso.Picasso; + +import java.util.ArrayList; +import java.util.List; + +public class ShopDetailActivity extends AppCompatActivity { + + private List listFood = new ArrayList<>(); + ImageView imageShop, back_image; + RecyclerView recycler_view_food_shop; + FoodShopAdapter adapter; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_shop_detail); + + //Init Component + imageShop = findViewById(R.id.image_shop); + recycler_view_food_shop = findViewById(R.id.recycler_view_food_shop); + back_image = findViewById(R.id.back_image); + adapter = new FoodShopAdapter(); + + //Init temp data + Picasso.get().load("https://firebasestorage.googleapis.com/v0/b/foodify-55954.appspot.com/o/Free%20Food%20Advertising%20Banner%20Template.jpg?alt=media&token=8b836fd7-f18f-46c6-a14f-27680e51a1d5").into(imageShop); + + for(int i = 1; i <= 10; i++){ + listFood.add(new Food("https://images.unsplash.com/photo-1546069901-ba9599a7e63c?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxleHBsb3JlLWZlZWR8MXx8fGVufDB8fHx8&w=1000&q=80", "Food " + i, "50.000đ")); + } + + LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this); + recycler_view_food_shop.setLayoutManager(linearLayoutManager); + + RecyclerView.ItemDecoration itemDecoration = new DividerItemDecoration(this, DividerItemDecoration.VERTICAL); + recycler_view_food_shop.addItemDecoration(itemDecoration); + + adapter.setData(listFood); + recycler_view_food_shop.setAdapter(adapter); + + back_image.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + onBackPressed(); + } + }); + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/capstone/foodify/Fragment/SearchFragment.java b/app/src/main/java/com/capstone/foodify/Fragment/SearchFragment.java index 4b6a38c..a7aad3d 100644 --- a/app/src/main/java/com/capstone/foodify/Fragment/SearchFragment.java +++ b/app/src/main/java/com/capstone/foodify/Fragment/SearchFragment.java @@ -147,8 +147,6 @@ public class SearchFragment extends Fragment { foodAdapter.setData(listFoodSearch); foodAdapter.notifyDataSetChanged(); hideProgressBarAndShowEndOfListText(); - - Toast.makeText(getContext(), "List food search: " + foodData.size(), Toast.LENGTH_SHORT).show(); } private void getListCategory() { diff --git a/app/src/main/java/com/capstone/foodify/Model/Food/Food.java b/app/src/main/java/com/capstone/foodify/Model/Food/Food.java index dc6532e..f20e54e 100644 --- a/app/src/main/java/com/capstone/foodify/Model/Food/Food.java +++ b/app/src/main/java/com/capstone/foodify/Model/Food/Food.java @@ -9,6 +9,7 @@ public class Food implements Comparable{ private String description; private String shopName; private String reviewCount; + private String quantity_sold; public Food() { } public Food(String id, String img, String name, String price, String shopName) { @@ -19,6 +20,12 @@ public class Food implements Comparable{ this.shopName = shopName; } + public Food(String img, String name, String price) { + this.img = img; + this.name = name; + this.price = price; + } + public String getId() { return id; } @@ -68,6 +75,14 @@ public class Food implements Comparable{ this.reviewCount = reviewCount; } + public String getQuantity_sold() { + return quantity_sold; + } + + public void setQuantity_sold(String quantity_sold) { + this.quantity_sold = quantity_sold; + } + @Override public int compareTo(Food food) { if(getName().isEmpty() || food.getName().isEmpty()){ diff --git a/app/src/main/java/com/capstone/foodify/Model/Food/FoodAdapter.java b/app/src/main/java/com/capstone/foodify/Model/Food/FoodAdapter.java index 3e53df0..d477285 100644 --- a/app/src/main/java/com/capstone/foodify/Model/Food/FoodAdapter.java +++ b/app/src/main/java/com/capstone/foodify/Model/Food/FoodAdapter.java @@ -2,7 +2,6 @@ package com.capstone.foodify.Model.Food; import android.content.Context; import android.content.Intent; -import android.text.Layout; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -17,9 +16,7 @@ import com.capstone.foodify.Common; import com.capstone.foodify.R; import com.squareup.picasso.Picasso; -import java.text.NumberFormat; import java.util.List; -import java.util.Locale; public class FoodAdapter extends RecyclerView.Adapter{ @@ -39,7 +36,7 @@ public class FoodAdapter extends RecyclerView.Adapter{ @@ -36,7 +34,7 @@ public class FoodSearchAdapter extends RecyclerView.Adapter { + + private List listFoodShop; + + public FoodShopAdapter() { + } + + public void setData(List listFoodShop){ + this.listFoodShop = listFoodShop; + } + + @NonNull + @Override + public FoodShopViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_food_shop, parent, false); + return new FoodShopViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull FoodShopViewHolder holder, int position) { + Food food = listFoodShop.get(position); + + if(food == null) + return; + + Picasso.get().load(food.getImg()).into(holder.imageView); + holder.foodName.setText(food.getName()); + holder.quantitySoldOut.setText("1.2k đã bán"); + holder.price.setText(food.getPrice()); + } + + @Override + public int getItemCount() { + if(listFoodShop != null) + return listFoodShop.size(); + return 0; + } + + public class FoodShopViewHolder extends RecyclerView.ViewHolder { + + ImageView imageView; + TextView foodName, quantitySoldOut, price; + + + public FoodShopViewHolder(@NonNull View itemView) { + super(itemView); + + imageView = itemView.findViewById(R.id.image_view); + foodName = itemView.findViewById(R.id.food_name_text_view); + quantitySoldOut = itemView.findViewById(R.id.quantity_sold_out); + price = itemView.findViewById(R.id.price_text_view); + } + } +} diff --git a/app/src/main/java/com/capstone/foodify/Model/Shop/ShopAdapter.java b/app/src/main/java/com/capstone/foodify/Model/Shop/ShopAdapter.java index 5e29f66..05cdcbc 100644 --- a/app/src/main/java/com/capstone/foodify/Model/Shop/ShopAdapter.java +++ b/app/src/main/java/com/capstone/foodify/Model/Shop/ShopAdapter.java @@ -1,15 +1,16 @@ package com.capstone.foodify.Model.Shop; import android.content.Context; +import android.content.Intent; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; -import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; +import com.capstone.foodify.Activity.ShopDetailActivity; import com.capstone.foodify.R; import java.util.List; @@ -32,7 +33,7 @@ public class ShopAdapter extends RecyclerView.Adapter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index d28244f..d1badcc 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -77,7 +77,7 @@ android:layout_height="wrap_content" app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" android:orientation="horizontal" - tools:listitem="@layout/list_foods" + tools:listitem="@layout/item_food" app:layout_constraintTop_toBottomOf="@id/recycler_view_restaurant" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" @@ -104,7 +104,7 @@ app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" android:orientation="horizontal" android:contentDescription="@string/description" - tools:listitem="@layout/list_restaurant" + tools:listitem="@layout/item_shop" app:layout_constraintTop_toBottomOf="@id/restaurant_text" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" diff --git a/app/src/main/res/layout/fragment_search.xml b/app/src/main/res/layout/fragment_search.xml index dfbe91a..5ed1c96 100644 --- a/app/src/main/res/layout/fragment_search.xml +++ b/app/src/main/res/layout/fragment_search.xml @@ -46,7 +46,7 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/list_restaurant.xml b/app/src/main/res/layout/item_shop.xml similarity index 100% rename from app/src/main/res/layout/list_restaurant.xml rename to app/src/main/res/layout/item_shop.xml diff --git a/app/src/main/res/layout/menu.xml b/app/src/main/res/layout/menu.xml index fe35366..9b9c092 100644 --- a/app/src/main/res/layout/menu.xml +++ b/app/src/main/res/layout/menu.xml @@ -25,7 +25,7 @@ android:layout_marginTop="10dp" app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" android:orientation="horizontal" - tools:listitem="@layout/list_foods" + tools:listitem="@layout/item_food" app:layout_constraintTop_toBottomOf="@id/menuTitle" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index ac2ab50..f1a20ba 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -4,6 +4,7 @@ #FFFFFFFF #ff8084 + #CF2E33 #A3A3A3 #F99928 #ACA5A5 diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index e157152..0514513 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -5,8 +5,6 @@ @color/primaryColor @color/primaryColor @color/white - - @color/black ?attr/colorPrimaryVariant @@ -15,6 +13,13 @@ @color/grayLight + +