Commit a3575408 authored by ankitasingh's avatar ankitasingh

delete item code added

parent f384ab89
This diff is collapsed.
...@@ -3,10 +3,11 @@ package com.example.instilostandfound; ...@@ -3,10 +3,11 @@ package com.example.instilostandfound;
import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.Exclude; import com.google.firebase.database.Exclude;
import java.io.Serializable;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
public class CreateFoundObject { public class CreateFoundObject implements Serializable {
//private String mLDAPID; //private String mLDAPID;
private String mImageUrl; private String mImageUrl;
......
package com.example.instilostandfound; package com.example.instilostandfound;
import android.content.Context; import android.content.Context;
import android.view.ContextMenu;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.ImageView; import android.widget.ImageView;
...@@ -17,6 +20,7 @@ import java.util.List; ...@@ -17,6 +20,7 @@ import java.util.List;
public class MyPostsAdaptor extends RecyclerView.Adapter<MyPostsAdaptor.myViewHolder> { public class MyPostsAdaptor extends RecyclerView.Adapter<MyPostsAdaptor.myViewHolder> {
private Context mcontext; private Context mcontext;
private List<CreateFoundObject> mUploads; private List<CreateFoundObject> mUploads;
private OnItemClickListener mListener;
public MyPostsAdaptor(Context context, List<CreateFoundObject> uploads){ public MyPostsAdaptor(Context context, List<CreateFoundObject> uploads){
mcontext = context; mcontext = context;
...@@ -45,16 +49,72 @@ public class MyPostsAdaptor extends RecyclerView.Adapter<MyPostsAdaptor.myViewHo ...@@ -45,16 +49,72 @@ public class MyPostsAdaptor extends RecyclerView.Adapter<MyPostsAdaptor.myViewHo
return mUploads.size(); return mUploads.size();
} }
public class myViewHolder extends RecyclerView.ViewHolder{ public class myViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener,
View.OnCreateContextMenuListener, MenuItem.OnMenuItemClickListener{
public TextView textViewname; public TextView textViewname;
public ImageView imageView; public ImageView imageView;
public myViewHolder(@NonNull View itemView) { public myViewHolder(@NonNull View itemView) {
super(itemView); super(itemView);
textViewname = itemView.findViewById(R.id.list_item_textview); textViewname = itemView.findViewById(R.id.list_item_textview);
imageView = itemView.findViewById(R.id.list_item_imageview); imageView = itemView.findViewById(R.id.list_item_imageview);
itemView.setOnClickListener(this);
itemView.setOnCreateContextMenuListener(this);
}
@Override
public void onClick(View v) {
if (mListener != null) {
int position = getAdapterPosition();
if (position != RecyclerView.NO_POSITION) {
mListener.onItemClick(position);
}
}
} }
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
menu.setHeaderTitle("Select Action");
MenuItem doedit = menu.add(Menu.NONE, 1, 1, "Edit post");
MenuItem delete = menu.add(Menu.NONE, 2, 2, "Delete post");
doedit.setOnMenuItemClickListener(this);
delete.setOnMenuItemClickListener(this);
}
@Override
public boolean onMenuItemClick(MenuItem item) {
if (mListener != null) {
int position = getAdapterPosition();
if (position != RecyclerView.NO_POSITION) {
switch (item.getItemId()) {
case 1:
mListener.oneditClick(position);
return true;
case 2:
mListener.onDeleteClick(position);
return true;
}
}
}
return false;
}
}
public interface OnItemClickListener {
void onItemClick(int position);
void oneditClick(int position);
void onDeleteClick(int position);
}
public void setOnItemClickListener(OnItemClickListener listener) {
mListener = listener;
}
} }
}
...@@ -5,10 +5,14 @@ import androidx.appcompat.app.AppCompatActivity; ...@@ -5,10 +5,14 @@ import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log; import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Toast; import android.widget.Toast;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.firebase.database.ChildEventListener; import com.google.firebase.database.ChildEventListener;
import com.google.firebase.database.DataSnapshot; import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError; import com.google.firebase.database.DatabaseError;
...@@ -16,18 +20,24 @@ import com.google.firebase.database.DatabaseReference; ...@@ -16,18 +20,24 @@ import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase; import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.Query; import com.google.firebase.database.Query;
import com.google.firebase.database.ValueEventListener; import com.google.firebase.database.ValueEventListener;
import com.google.firebase.storage.FirebaseStorage;
import com.google.firebase.storage.StorageReference;
import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
public class MyPostsFoundRV extends AppCompatActivity { public class MyPostsFoundRV extends AppCompatActivity implements MyPostsAdaptor.OnItemClickListener {
private RecyclerView mrecyclerView; private RecyclerView mrecyclerView;
private MyPostsAdaptor mAdaptor; private MyPostsAdaptor mAdaptor;
private DatabaseReference mDatabaseRef; private DatabaseReference mDatabaseRef;
private FirebaseStorage mStorage;
private List<CreateFoundObject> mPosts; private List<CreateFoundObject> mPosts;
private String username =null; private String username =null;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
...@@ -41,6 +51,7 @@ public class MyPostsFoundRV extends AppCompatActivity { ...@@ -41,6 +51,7 @@ public class MyPostsFoundRV extends AppCompatActivity {
mPosts = new ArrayList<>(); mPosts = new ArrayList<>();
mDatabaseRef = FirebaseDatabase.getInstance().getReference("FoundData"); mDatabaseRef = FirebaseDatabase.getInstance().getReference("FoundData");
mStorage = FirebaseStorage.getInstance();
Query usernamequery = mDatabaseRef.orderByChild("ldap").equalTo((username+"@iitb.ac.in").toLowerCase()); Query usernamequery = mDatabaseRef.orderByChild("ldap").equalTo((username+"@iitb.ac.in").toLowerCase());
Log.v("query",usernamequery.toString()); Log.v("query",usernamequery.toString());
...@@ -48,15 +59,19 @@ public class MyPostsFoundRV extends AppCompatActivity { ...@@ -48,15 +59,19 @@ public class MyPostsFoundRV extends AppCompatActivity {
@Override @Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) { public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot postSnapShot : dataSnapshot.getChildren()){ for(DataSnapshot postSnapShot : dataSnapshot.getChildren()){
CreateFoundObject post = postSnapShot.getValue(CreateFoundObject.class); CreateFoundObject post = postSnapShot.getValue(CreateFoundObject.class);
post.setKey(postSnapShot.getKey());
mPosts.add(post); mPosts.add(post);
} }
mAdaptor = new MyPostsAdaptor(MyPostsFoundRV.this, mPosts); mAdaptor = new MyPostsAdaptor(MyPostsFoundRV.this, mPosts);
mrecyclerView.setAdapter(mAdaptor); mrecyclerView.setAdapter(mAdaptor);
mAdaptor.setOnItemClickListener(MyPostsFoundRV.this);
} }
@Override @Override
public void onCancelled(@NonNull DatabaseError databaseError) { public void onCancelled(@NonNull DatabaseError databaseError) {
...@@ -64,4 +79,51 @@ public class MyPostsFoundRV extends AppCompatActivity { ...@@ -64,4 +79,51 @@ public class MyPostsFoundRV extends AppCompatActivity {
} }
}); });
} }
@Override
public void onItemClick(int position) {
Toast.makeText(this, "Normal click at position: " + position, Toast.LENGTH_SHORT).show();
}
@Override
public void oneditClick(int position) {
Log.v("position =",String.valueOf(position));
CreateFoundObject selectedItem = mPosts.get(position);
final String selectedKey = selectedItem.getKey();
Intent intent = new Intent(MyPostsFoundRV.this, FoundItem.class);
intent.putExtra("FoundObject", selectedItem);
startActivity(intent);
Toast.makeText(this, "Whatever click at position: " + position, Toast.LENGTH_SHORT).show();
}
@Override
public void onDeleteClick(int position) {
Log.v("position =",String.valueOf(position));
CreateFoundObject selectedItem = mPosts.get(position);
final String selectedKey = selectedItem.getKey();
Log.v("selected key =",selectedKey);
Log.v("url of image =",selectedItem.getImageUrl());
if(selectedItem.getImageUrl()=="NO-IMAGE") {
StorageReference imageRef = mStorage.getReferenceFromUrl(selectedItem.getImageUrl());
imageRef.delete().addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
mDatabaseRef.child(selectedKey).removeValue();
Toast.makeText(MyPostsFoundRV.this, "Item deleted", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(MyPostsFoundRV.this, MyPostsFoundRV.class);
intent.putExtra("username", username);
startActivity(intent);
finish();
}
});
}
else
{
mDatabaseRef.child(selectedKey).removeValue();
Toast.makeText(MyPostsFoundRV.this, "Item deleted", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(MyPostsFoundRV.this, MyPostsFoundRV.class);
intent.putExtra("username", username);
startActivity(intent);
finish();
}
}
} }
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
<ImageView <ImageView
android:id="@+id/image_view_upload" android:id="@+id/image_view_upload"
android:layout_width="match_parent" android:layout_width="match_parent"
android:src="@drawable/camera"
android:layout_height="200dp" /> android:layout_height="200dp" />
</LinearLayout> </LinearLayout>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment