mirror of
https://github.com/Nezumi-2711/PRM392.git
synced 2026-09-22 13:48:29 +00:00
Add update/delete function
This commit is contained in:
@@ -4,4 +4,7 @@ import com.waterbase.foodifyServer.Model.User;
|
||||
|
||||
public class Common {
|
||||
public static User currentUser;
|
||||
|
||||
public static final String UPDATE = "Cập nhật";
|
||||
public static final String DELETE = "Xoá";
|
||||
}
|
||||
|
||||
@@ -43,6 +43,7 @@ import com.rengwuxian.materialedittext.MaterialEditText;
|
||||
import com.squareup.picasso.Picasso;
|
||||
import com.waterbase.foodifyServer.Common.Category;
|
||||
import com.waterbase.foodifyServer.Common.Common;
|
||||
import com.waterbase.foodifyServer.Interface.ItemClickListener;
|
||||
import com.waterbase.foodifyServer.ViewHolder.MenuViewHolder;
|
||||
import com.waterbase.foodifyServer.databinding.ActivityHomeBinding;
|
||||
|
||||
@@ -239,6 +240,13 @@ public class Home extends AppCompatActivity implements NavigationView.OnNavigati
|
||||
protected void populateViewHolder(MenuViewHolder viewHolder, Category model, int i) {
|
||||
viewHolder.txtMenuName.setText(model.getName());
|
||||
Picasso.with(Home.this).load(model.getImage()).into(viewHolder.imageView);
|
||||
|
||||
viewHolder.setItemClickListener(new ItemClickListener() {
|
||||
@Override
|
||||
public void onClick(View view, int position, boolean isLongClick) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
@@ -263,4 +271,112 @@ public class Home extends AppCompatActivity implements NavigationView.OnNavigati
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onContextItemSelected(@NonNull MenuItem item) {
|
||||
if(item.getTitle(). equals(Common.UPDATE))
|
||||
{
|
||||
showUpdateDialog(adapter.getRef(item.getOrder()).getKey(), adapter.getItem(item.getOrder()));
|
||||
} else if(item.getTitle().equals(Common.DELETE))
|
||||
{
|
||||
deleteCategory(adapter.getRef(item.getOrder()).getKey());
|
||||
}
|
||||
|
||||
return super.onContextItemSelected(item);
|
||||
}
|
||||
|
||||
private void deleteCategory(String key) {
|
||||
categories.child(key).removeValue();
|
||||
Toast.makeText(this, "Xoá thành công!", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
|
||||
private void showUpdateDialog(String key, Category item) {
|
||||
AlertDialog.Builder alertDialog = new AlertDialog.Builder(Home.this);
|
||||
alertDialog.setTitle("Cập nhật danh mục:");
|
||||
alertDialog.setMessage("Vui lòng điền đầy đủ thông tin");
|
||||
|
||||
LayoutInflater inflater = this.getLayoutInflater();
|
||||
View add_menu_layout = inflater.inflate(R.layout.add_new_menu_layout, null);
|
||||
|
||||
edtName = add_menu_layout.findViewById(R.id.edtName);
|
||||
btnSelect = add_menu_layout.findViewById(R.id.btnSelect);
|
||||
btnUpload = add_menu_layout.findViewById(R.id.btnUpload);
|
||||
|
||||
//Set default name
|
||||
edtName.setText(item.getName());
|
||||
|
||||
//Event for button
|
||||
btnSelect.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
chooseImage(); //Let user select image from Gallery and save Uri of this image
|
||||
}
|
||||
});
|
||||
|
||||
btnUpload.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
changeImage(item);
|
||||
}
|
||||
});
|
||||
|
||||
alertDialog.setView(add_menu_layout);
|
||||
alertDialog.setIcon(R.drawable.ic_baseline_shopping_cart_24);
|
||||
|
||||
alertDialog.setPositiveButton("Cập nhật", new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
dialog.dismiss();
|
||||
|
||||
//Update information
|
||||
item.setName(edtName.getText().toString());
|
||||
categories.child(key).setValue(item);
|
||||
}
|
||||
});
|
||||
|
||||
alertDialog.setNegativeButton("Thoát", new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
dialog.dismiss();
|
||||
}
|
||||
});
|
||||
alertDialog.show();
|
||||
}
|
||||
|
||||
private void changeImage(Category item) {
|
||||
if(saveUri != null) {
|
||||
ProgressDialog mDialog = new ProgressDialog(this);
|
||||
mDialog.setMessage("Đang tải lên....");
|
||||
mDialog.show();
|
||||
|
||||
String imageName = UUID.randomUUID().toString();
|
||||
StorageReference imageFolder = storageReference.child("/images/" + imageName);
|
||||
imageFolder.putFile(saveUri)
|
||||
.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
|
||||
@Override
|
||||
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
|
||||
mDialog.dismiss();
|
||||
Toast.makeText(Home.this, "Đã cập nhật ảnh thành công!", Toast.LENGTH_SHORT).show();
|
||||
imageFolder.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
|
||||
@Override
|
||||
public void onSuccess(Uri uri) {
|
||||
item.setImage(uri.toString());
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
})
|
||||
.addOnFailureListener((e) -> {
|
||||
mDialog.dismiss();
|
||||
Toast.makeText(Home.this, e.getMessage(), Toast.LENGTH_SHORT).show();
|
||||
})
|
||||
.addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
|
||||
@Override
|
||||
public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
|
||||
double progress = (100.0 * taskSnapshot.getBytesTransferred() / taskSnapshot.getTotalByteCount());
|
||||
mDialog.setMessage("Đang tải " + progress + "%");
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
+12
-1
@@ -1,15 +1,17 @@
|
||||
package com.waterbase.foodifyServer.ViewHolder;
|
||||
|
||||
import android.view.ContextMenu;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.waterbase.foodifyServer.Common.Common;
|
||||
import com.waterbase.foodifyServer.Interface.ItemClickListener;
|
||||
import com.waterbase.foodifyServer.R;
|
||||
|
||||
public class MenuViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
|
||||
public class MenuViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnCreateContextMenuListener{
|
||||
public TextView txtMenuName;
|
||||
public ImageView imageView;
|
||||
|
||||
@@ -21,6 +23,7 @@ public class MenuViewHolder extends RecyclerView.ViewHolder implements View.OnCl
|
||||
txtMenuName = (TextView) itemView.findViewById(R.id.menu_name);
|
||||
imageView = (ImageView) itemView.findViewById(R.id.menu_image);
|
||||
|
||||
itemView.setOnCreateContextMenuListener(this);
|
||||
itemView.setOnClickListener(this);
|
||||
}
|
||||
|
||||
@@ -32,4 +35,12 @@ public class MenuViewHolder extends RecyclerView.ViewHolder implements View.OnCl
|
||||
public void onClick(View v) {
|
||||
itemClickListener.onClick(v, getAdapterPosition(), false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
|
||||
menu.setHeaderTitle("Tuỳ chọn:");
|
||||
|
||||
menu.add(0,0, getAdapterPosition(), Common.UPDATE);
|
||||
menu.add(0,1, getAdapterPosition(), Common.DELETE);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user