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 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.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; } }