Add shop detail screen

This commit is contained in:
Nezumi
2023-03-08 11:30:45 +07:00
parent e1b00117b6
commit 05871d7006
19 changed files with 460 additions and 17 deletions
@@ -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){
@@ -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<Food> 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();
}
});
}
}
@@ -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() {
@@ -9,6 +9,7 @@ public class Food implements Comparable<Food>{
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<Food>{
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<Food>{
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()){
@@ -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<FoodAdapter.FoodViewHolder>{
@@ -39,7 +36,7 @@ public class FoodAdapter extends RecyclerView.Adapter<FoodAdapter.FoodViewHolder
@NonNull
@Override
public FoodViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_foods, parent, false);
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_food, parent, false);
return new FoodViewHolder(view);
}
@@ -14,9 +14,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 FoodSearchAdapter extends RecyclerView.Adapter<FoodSearchAdapter.FoodViewHolder>{
@@ -36,7 +34,7 @@ public class FoodSearchAdapter extends RecyclerView.Adapter<FoodSearchAdapter.Fo
@NonNull
@Override
public FoodViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_foods_search, parent, false);
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_food_search, parent, false);
return new FoodViewHolder(view);
}
@@ -0,0 +1,71 @@
package com.capstone.foodify.Model.Food;
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.R;
import com.google.android.material.appbar.CollapsingToolbarLayout;
import com.squareup.picasso.Picasso;
import java.util.List;
public class FoodShopAdapter extends RecyclerView.Adapter<FoodShopAdapter.FoodShopViewHolder> {
private List<Food> listFoodShop;
public FoodShopAdapter() {
}
public void setData(List<Food> 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);
}
}
}
@@ -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<ShopAdapter.ShopViewHolder
@NonNull
@Override
public ShopViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_restaurant, parent, false);
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_shop, parent, false);
return new ShopViewHolder(view);
}
@@ -44,6 +45,12 @@ public class ShopAdapter extends RecyclerView.Adapter<ShopAdapter.ShopViewHolder
return;
holder.imgView.setImageResource(shop.getResourceId());
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
context.startActivity(new Intent(context, ShopDetailActivity.class));
}
});
}
@Override