mirror of
https://github.com/Nezumi-2711/PRM392.git
synced 2026-09-22 05:41:45 +00:00
168 lines
6.0 KiB
Java
168 lines
6.0 KiB
Java
package com.waterbase.foodify;
|
|
|
|
import android.content.Intent;
|
|
import android.os.Bundle;
|
|
import android.os.Debug;
|
|
import android.util.Log;
|
|
import android.view.Menu;
|
|
import android.view.MenuItem;
|
|
import android.view.View;
|
|
import android.widget.TextView;
|
|
import android.widget.Toast;
|
|
|
|
import androidx.annotation.NonNull;
|
|
import androidx.appcompat.app.ActionBarDrawerToggle;
|
|
import androidx.appcompat.app.AppCompatActivity;
|
|
import androidx.appcompat.widget.Toolbar;
|
|
import androidx.core.view.GravityCompat;
|
|
import androidx.drawerlayout.widget.DrawerLayout;
|
|
import androidx.navigation.ui.AppBarConfiguration;
|
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
|
import androidx.recyclerview.widget.RecyclerView;
|
|
|
|
import com.firebase.ui.database.FirebaseRecyclerAdapter;
|
|
import com.google.android.material.navigation.NavigationView;
|
|
import com.google.firebase.database.DatabaseReference;
|
|
import com.google.firebase.database.FirebaseDatabase;
|
|
import com.squareup.picasso.Picasso;
|
|
import com.waterbase.foodify.Common.Common;
|
|
import com.waterbase.foodify.Interface.ItemClickListener;
|
|
import com.waterbase.foodify.Model.Category;
|
|
import com.waterbase.foodify.Service.ListenOrder;
|
|
import com.waterbase.foodify.ViewHolder.MenuViewHolder;
|
|
|
|
import io.paperdb.Paper;
|
|
|
|
|
|
public class Home extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener{
|
|
|
|
FirebaseDatabase database;
|
|
DatabaseReference category;
|
|
|
|
RecyclerView recyler_menu;
|
|
RecyclerView.LayoutManager layoutManager;
|
|
FirebaseRecyclerAdapter<Category, MenuViewHolder> adapter;
|
|
|
|
private AppBarConfiguration mAppBarConfiguration;
|
|
|
|
@Override
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
|
|
setContentView(R.layout.activity_home);
|
|
|
|
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
|
toolbar.setTitle("Menu");
|
|
setSupportActionBar(toolbar);
|
|
|
|
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
|
|
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.app_name, R.string.app_name);
|
|
drawer.setDrawerListener(toggle);
|
|
toggle.syncState();
|
|
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
|
|
navigationView.setNavigationItemSelectedListener(this);
|
|
|
|
|
|
//Init database
|
|
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);
|
|
|
|
if(Common.isConnectedToInternet(getBaseContext()))
|
|
loadMenu();
|
|
else {
|
|
Toast.makeText(this, "Vui lòng kiểm tra kết nối mạng!", Toast.LENGTH_SHORT).show();
|
|
return;
|
|
}
|
|
|
|
|
|
//Set name for user
|
|
View headerView = navigationView.getHeaderView(0);
|
|
TextView navUserName = (TextView) headerView.findViewById(R.id.txtFullName);
|
|
navUserName.setText(Common.currentUser.getName());
|
|
|
|
//Register Service
|
|
Intent service = new Intent(Home.this, ListenOrder.class);
|
|
startService(service);
|
|
}
|
|
|
|
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) {
|
|
viewHolder.txtMenuName.setText(model.getName());
|
|
Picasso.with(getBaseContext()).load(model.getImage())
|
|
.into(viewHolder.imageView);
|
|
viewHolder.setItemClickListener(new ItemClickListener() {
|
|
@Override
|
|
public void onClick(View view, int position, boolean isLongClick) {
|
|
|
|
try {
|
|
//Get Category Id and send to new Activity
|
|
Intent foodList = new Intent(getBaseContext(), FoodList.class);
|
|
foodList.putExtra("CategoryId", adapter.getRef(position).getKey());
|
|
foodList.putExtra("CategoryName", model.getName());
|
|
startActivity(foodList);
|
|
}catch (Exception e){
|
|
Log.d("ERROR", e.getStackTrace().toString());
|
|
}
|
|
|
|
}
|
|
});
|
|
}
|
|
};
|
|
recyler_menu.setAdapter(adapter);
|
|
|
|
}
|
|
|
|
@Override
|
|
public boolean onCreateOptionsMenu(Menu menu) {
|
|
// Inflate the menu; this adds items to the action bar if it is present.
|
|
getMenuInflater().inflate(R.menu.home, menu);
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
|
|
if(item.getItemId() == R.id.refresh)
|
|
loadMenu();
|
|
|
|
return super.onOptionsItemSelected(item);
|
|
}
|
|
|
|
@Override
|
|
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
|
|
int id = item.getItemId();
|
|
|
|
if(id == R.id.nav_cart) {
|
|
Intent cartIntent = new Intent(Home.this, Cart.class);
|
|
startActivity(cartIntent);
|
|
} else if (id == R.id.nav_order) {
|
|
Intent orderIntent = new Intent(Home.this, OrderStatus.class);
|
|
startActivity(orderIntent);
|
|
} else if (id == R.id.nav_log_out) {
|
|
|
|
//Delete Remember user & password
|
|
Paper.book().destroy();
|
|
|
|
//Logout
|
|
Intent signIn = new Intent(Home.this, SignIn.class);
|
|
signIn.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
|
startActivity(signIn);
|
|
finish();
|
|
}
|
|
|
|
DrawerLayout drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
|
|
drawerLayout.closeDrawer(GravityCompat.START);
|
|
|
|
return true;
|
|
}
|
|
} |