Add animation menu, show amount of order

This commit is contained in:
phanhuuloi27
2022-06-17 17:11:13 +07:00
parent 35994f23d5
commit 8697605471
16 changed files with 178 additions and 43 deletions
@@ -84,4 +84,18 @@ public class Database extends SQLiteAssetHelper {
cursor.close();
return true;
}
public int getCountCart() {
int count = 0;
SQLiteDatabase db = getReadableDatabase();
String query = String.format("SELECT COUNT(*) FROM OrderDetail");
Cursor cursor = db.rawQuery(query, null);
if(cursor.moveToFirst()){
do {
count = cursor.getInt(0);
}while (cursor.moveToNext());
}
return count;
}
}
@@ -13,6 +13,7 @@ import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import com.andremion.counterfab.CounterFab;
import com.cepheuen.elegantnumberbutton.view.ElegantNumberButton;
import com.google.android.material.appbar.CollapsingToolbarLayout;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
@@ -44,7 +45,8 @@ public class FoodDetail extends AppCompatActivity implements RatingDialogListene
TextView food_name, food_price, food_description;
ImageView food_image;
CollapsingToolbarLayout collapsingToolbarLayout;
FloatingActionButton btnCart, btnRating;
FloatingActionButton btnRating;
CounterFab btnCart;
ElegantNumberButton numberButton;
RatingBar ratingBar;
@@ -83,7 +85,7 @@ public class FoodDetail extends AppCompatActivity implements RatingDialogListene
//Init view
numberButton = (ElegantNumberButton) findViewById(R.id.number_button);
btnCart = (FloatingActionButton) findViewById(R.id.btnCart);
btnCart = findViewById(R.id.btnCart);
btnRating = (FloatingActionButton) findViewById(R.id.btnRating);
ratingBar = (RatingBar) findViewById(R.id.ratingBar);
@@ -105,10 +107,12 @@ public class FoodDetail extends AppCompatActivity implements RatingDialogListene
currentFood.getDiscount()
));
Toast.makeText(FoodDetail.this, "Added to Cart", Toast.LENGTH_SHORT).show();
Toast.makeText(FoodDetail.this, "Đã thêm vào giỏ hàng!", Toast.LENGTH_SHORT).show();
}
});
btnCart.setCount(new Database(this).getCountCart());
food_description = (TextView) findViewById(R.id.food_description);
food_name = (TextView) findViewById(R.id.food_name);
food_price = (TextView) findViewById(R.id.food_price);
@@ -28,6 +28,7 @@ import com.waterbase.foodify.Common.Common;
import com.waterbase.foodify.Database.Database;
import com.waterbase.foodify.Interface.ItemClickListener;
import com.waterbase.foodify.Model.Food;
import com.waterbase.foodify.Model.Order;
import com.waterbase.foodify.ViewHolder.FoodViewHolder;
import java.util.ArrayList;
@@ -248,6 +249,22 @@ public class FoodList extends AppCompatActivity {
viewHolder.food_price.setText(String.format("%s đ", model.getPrice()));
Picasso.with(getBaseContext()).load(model.getImage()).into(viewHolder.food_image);
//Quick Cart
viewHolder.quick_cart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new Database(getBaseContext()).addToCart(new Order(
adapter.getRef(position).getKey(),
model.getName(),
"1",
model.getPrice(),
model.getDiscount()
));
Toast.makeText(FoodList.this, "Đã thêm vào giỏ hàng!", Toast.LENGTH_SHORT).show();
}
});
//Add Favorites
if(localDB.isFavorite(adapter.getRef(position).getKey()))
viewHolder.fav_image.setImageResource(R.drawable.ic_baseline_favorite_24);
@@ -8,6 +8,8 @@ import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.animation.AnimationUtils;
import android.view.animation.LayoutAnimationController;
import android.widget.TextView;
import android.widget.Toast;
@@ -22,10 +24,12 @@ import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import com.andremion.counterfab.CounterFab;
import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.Task;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.navigation.NavigationView;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
@@ -33,6 +37,7 @@ import com.google.firebase.iid.FirebaseInstanceId;
import com.rengwuxian.materialedittext.MaterialEditText;
import com.squareup.picasso.Picasso;
import com.waterbase.foodify.Common.Common;
import com.waterbase.foodify.Database.Database;
import com.waterbase.foodify.Interface.ItemClickListener;
import com.waterbase.foodify.Model.Category;
import com.waterbase.foodify.Model.Token;
@@ -60,6 +65,8 @@ public class Home extends AppCompatActivity implements NavigationView.OnNavigati
SwipeRefreshLayout swipeRefreshLayout;
CounterFab fab;
@Override
protected void attachBaseContext(Context newBase) {
super.attachBaseContext(ViewPumpContextWrapper.wrap(newBase));
@@ -85,6 +92,17 @@ public class Home extends AppCompatActivity implements NavigationView.OnNavigati
toolbar.setTitle("Menu");
setSupportActionBar(toolbar);
//Floating Action Button
fab = findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(Home.this, Cart.class));
}
});
fab.setCount(new Database(this).getCountCart());
//View
swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_layout);
swipeRefreshLayout.setColorSchemeResources(R.color.colorPrimary,
@@ -128,33 +146,6 @@ public class Home extends AppCompatActivity implements NavigationView.OnNavigati
database = FirebaseDatabase.getInstance();
category = database.getReference("Category");
//Init paper
Paper.init(this);
//Load menu
recyler_menu = (RecyclerView) findViewById(R.id.recyler_menu);
recyler_menu.setHasFixedSize(true);
// layoutManager = new LinearLayoutManager(this);
// recyler_menu.setLayoutManager(layoutManager);
recyler_menu.setLayoutManager(new GridLayoutManager(this, 2));
//Set name for user
View headerView = navigationView.getHeaderView(0);
TextView navUserName = (TextView) headerView.findViewById(R.id.txtFullName);
navUserName.setText(Common.currentUser.getName());
updateToken(FirebaseInstanceId.getInstance().getToken());
}
private void updateToken(String token) {
FirebaseDatabase db = FirebaseDatabase.getInstance();
DatabaseReference tokens = db.getReference("Tokens");
Token data = new Token(token, false);
tokens.child(Common.currentUser.getPhone()).setValue(data);
}
private void loadMenu() {
adapter = new FirebaseRecyclerAdapter<Category, MenuViewHolder>(Category.class, R.layout.menu_item, MenuViewHolder.class, category) {
@Override
protected void populateViewHolder(MenuViewHolder viewHolder, Category model, int position) {
@@ -174,8 +165,47 @@ public class Home extends AppCompatActivity implements NavigationView.OnNavigati
});
}
};
//Init paper
Paper.init(this);
//Load menu
recyler_menu = (RecyclerView) findViewById(R.id.recyler_menu);
recyler_menu.setLayoutManager(new GridLayoutManager(this, 2));
LayoutAnimationController controller = AnimationUtils.loadLayoutAnimation(recyler_menu.getContext(),
R.anim.layout_fall_down);
recyler_menu.setLayoutAnimation(controller);
//Set name for user
View headerView = navigationView.getHeaderView(0);
TextView navUserName = (TextView) headerView.findViewById(R.id.txtFullName);
navUserName.setText(Common.currentUser.getName());
updateToken(FirebaseInstanceId.getInstance().getToken());
}
@Override
protected void onResume() {
super.onResume();
fab.setCount(new Database(this).getCountCart());
}
private void updateToken(String token) {
FirebaseDatabase db = FirebaseDatabase.getInstance();
DatabaseReference tokens = db.getReference("Tokens");
Token data = new Token(token, false);
tokens.child(Common.currentUser.getPhone()).setValue(data);
}
private void loadMenu() {
recyler_menu.setAdapter(adapter);
swipeRefreshLayout.setRefreshing(false);
//Animation
recyler_menu.getAdapter().notifyDataSetChanged();
recyler_menu.scheduleLayoutAnimation();
}
@Override
@@ -285,4 +315,5 @@ public class Home extends AppCompatActivity implements NavigationView.OnNavigati
AlertDialog dialog = alertDialog.create();
dialog.show();
}
}
@@ -13,7 +13,7 @@ import com.waterbase.foodify.R;
public class FoodViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
public TextView food_name, food_price;
public ImageView food_image, fav_image;
public ImageView food_image, fav_image, quick_cart;
private ItemClickListener itemClickListener;
@@ -28,6 +28,7 @@ public class FoodViewHolder extends RecyclerView.ViewHolder implements View.OnCl
food_image = (ImageView) itemView.findViewById(R.id.food_image);
fav_image = (ImageView) itemView.findViewById(R.id.fav);
food_price = (TextView) itemView.findViewById(R.id.food_price);
quick_cart = (ImageView) itemView.findViewById(R.id.btn_quick_cart);
itemView.setOnClickListener(this);
}