1+ // FolderListAdapter.java
12package com .btn .pronotes .Adapters ;
23
34import android .content .Context ;
67import android .view .ViewGroup ;
78
89import androidx .annotation .NonNull ;
10+ import androidx .appcompat .app .AlertDialog ;
911import androidx .core .content .ContextCompat ;
1012import androidx .recyclerview .widget .RecyclerView ;
1113
1214import com .btn .pronotes .Database .RoomDB ;
1315import com .btn .pronotes .Models .Folder ;
1416import com .btn .pronotes .R ;
17+ import com .btn .pronotes .databinding .CustomDialogAddFolderBinding ;
1518import com .btn .pronotes .databinding .RvItemFolderBinding ;
1619import com .btn .pronotes .interfaces .FolderClickListener ;
17- import com .btn .pronotes .interfaces .MainFolderClickListener ;
1820
1921import java .util .List ;
2022
21- //Notes List Adapter Class
22- public class FolderListAdapter extends RecyclerView .Adapter <FolderViewHolder > {
23+ public class FolderListAdapter extends RecyclerView .Adapter <FolderListAdapter .FolderViewHolder > {
2324 Context context ;
2425 List <Folder > list ;
2526 FolderClickListener listener ;
@@ -33,15 +34,14 @@ public FolderListAdapter(Context context, List<Folder> list, FolderClickListener
3334 @ NonNull
3435 @ Override
3536 public FolderViewHolder onCreateViewHolder (@ NonNull ViewGroup parent , int viewType ) {
36- return new FolderViewHolder (RvItemFolderBinding
37- .inflate (LayoutInflater .from (parent .getContext ()), parent , false ));
37+ return new FolderViewHolder (RvItemFolderBinding .inflate (LayoutInflater .from (parent .getContext ()), parent , false ));
3838 }
3939
4040 @ Override
4141 public void onBindViewHolder (@ NonNull FolderViewHolder holder , int position ) {
4242 Folder folder = list .get (position );
4343
44- holder .binding .tvName .setText (folder .getName ()); // Change here
44+ holder .binding .tvName .setText (folder .getName ());
4545 int count = folder .getId () != 1 ?
4646 RoomDB .getInstance (context ).mainDAO ().getNotesCount (folder .getId ()) :
4747 RoomDB .getInstance (context ).mainDAO ().getNotesCount ();
@@ -61,12 +61,33 @@ public void onBindViewHolder(@NonNull FolderViewHolder holder, int position) {
6161
6262 holder .binding .card .setOnClickListener (v -> listener .onClick (folder ));
6363
64- // Handle delete button click
6564 holder .binding .deletebutton .setOnClickListener (v -> {
6665 RoomDB .getInstance (context ).mainDAO ().deleteFolder (folder );
6766 list .remove (position );
6867 notifyItemRemoved (position );
6968 });
69+
70+ holder .binding .editbutton .setOnClickListener (v -> showEditFolderDialog (folder ));
71+ }
72+
73+ private void showEditFolderDialog (Folder folder ) {
74+ CustomDialogAddFolderBinding dialogBinding = CustomDialogAddFolderBinding .inflate (LayoutInflater .from (context ));
75+ AlertDialog alertDialog = new AlertDialog .Builder (context )
76+ .setView (dialogBinding .getRoot ())
77+ .setCancelable (false )
78+ .create ();
79+ alertDialog .show ();
80+
81+ dialogBinding .etFolderName .setText (folder .getName ());
82+ dialogBinding .btnCancel .setOnClickListener (v -> alertDialog .dismiss ());
83+ dialogBinding .btnDone .setOnClickListener (v -> {
84+ String folderName = dialogBinding .etFolderName .getText ().toString ();
85+ folder .setName (folderName .isEmpty () ? "Untitled Name" : folderName );
86+ RoomDB .getInstance (context ).mainDAO ().updateFolder (folder );
87+
88+ setList (RoomDB .getInstance (context ).mainDAO ().getAllFolder ());
89+ alertDialog .dismiss ();
90+ });
7091 }
7192
7293 public void setList (List <Folder > list ) {
@@ -75,20 +96,17 @@ public void setList(List<Folder> list) {
7596 notifyDataSetChanged ();
7697 }
7798
78-
7999 @ Override
80100 public int getItemCount () {
81101 return list .size ();
82102 }
83103
84- }
85-
86- class FolderViewHolder extends RecyclerView .ViewHolder {
104+ class FolderViewHolder extends RecyclerView .ViewHolder {
105+ RvItemFolderBinding binding ;
87106
88- RvItemFolderBinding binding ;
89-
90- public FolderViewHolder (@ NonNull RvItemFolderBinding binding ) { // Change here
91- super (binding .getRoot ());
92- this .binding = binding ;
107+ public FolderViewHolder (@ NonNull RvItemFolderBinding binding ) {
108+ super (binding .getRoot ());
109+ this .binding = binding ;
110+ }
93111 }
94112}
0 commit comments