Bläddra i källkod

remade emailViewer, but fragment is not nice

Simon Hammer 3 år sedan
förälder
incheckning
bc9c5f4c9a

+ 12 - 3
app/src/main/java/com/noahvogt/miniprojekt/MainActivity.java

@@ -37,6 +37,7 @@ import com.chaquo.python.Python;
 import com.chaquo.python.android.AndroidPlatform;
 import com.google.android.material.snackbar.Snackbar;
 import com.noahvogt.miniprojekt.ui.home.SettingsActivity;
+import com.noahvogt.miniprojekt.ui.show.MessageShowFragment;
 import com.noahvogt.miniprojekt.ui.slideshow.EmailViewHolder;
 import com.noahvogt.miniprojekt.ui.slideshow.EmailViewModel;
 
@@ -46,7 +47,7 @@ import java.util.List;
 
 import static com.noahvogt.miniprojekt.R.id.drawer_layout;
 
-public class MainActivity extends AppCompatActivity implements View.OnClickListener {
+public class MainActivity extends AppCompatActivity implements View.OnClickListener, CustomAdapter.SelectedMessage {
 
     private AppBarConfiguration mAppBarConfiguration;
 
@@ -54,8 +55,6 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
     public static EmailViewModel mEmailViewModel;
     public static RecyclerView recyclerView;
 
-    public static final CustomAdapter adapter = new CustomAdapter(new CustomAdapter.EmailDiff());
-
     private AlertDialog dialog;
     private EditText newemail_name, newemail_email, newemail_password; /* may not be private */
 
@@ -126,6 +125,9 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
         /* Lookup the recyclerview in activity layout */
         recyclerView = findViewById(R.id.recyclerView);
 
+        final CustomAdapter adapter = new CustomAdapter(new CustomAdapter.EmailDiff(),this);
+
+
 
         /* Attach the adapter to the recyclerview to populate items */
         recyclerView.setAdapter(adapter);
@@ -301,5 +303,12 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
     }
 
 
+    @Override
+    public void selectedMessage(Message emailViewModel) {
+
+        DialogFragment dialog = MessageShowFragment.newInstance(emailViewModel);
+        dialog.show(getSupportFragmentManager(), "tag");
+
+    }
 }
 

+ 6 - 4
app/src/main/java/com/noahvogt/miniprojekt/ui/DataBase/EmailRoomDatabase.java

@@ -1,6 +1,7 @@
 package com.noahvogt.miniprojekt.ui.DataBase;
 
 import android.content.Context;
+import android.content.Intent;
 import android.icu.util.Measure;
 
 import androidx.annotation.NonNull;
@@ -73,18 +74,19 @@ public abstract class EmailRoomDatabase extends RoomDatabase{
                dao.insert(word);
 
                word = new Message("Noah", null, null,
-                       "arldemeier", "bobo", "sentTest", "i could cry", "Inbox",
+                       "arldemeier", "bobo", "sentTest", "i could cry", "Sent",
                        true);
                dao.insert(word);
 
-               /*
-               for (int n = 1; n < 20; n++) {
+               
+               for (Integer n = 1; n < 20; n++) {
                    word = new Message("Simon", null, null,
-                           "stefan", "tomorrow", "sent20", "lets goo","Sent",
+                           "stefan", "tomorrow", n.toString(), "lets goo", "Sent",
                            true);
                    dao.insert(word);
                }
 
+               /*
                for (int i = 1; i < 20; i++){
                    word = new Message("Simon", null, null,
                            "Hans", "tomorrow", "inbox20", "lets goo","Inbox",

+ 0 - 5
app/src/main/java/com/noahvogt/miniprojekt/ui/DataBase/MessageDao.java

@@ -74,10 +74,5 @@ public interface MessageDao {
     @Query("SELECT * FROM message_table WHERE folder LIKE 'Spam' ORDER BY date ASC")
     LiveData<List<Message>> getSpamMessages();
 
-    /* selects just from, subject and date from word_table */
-
-    /* @Query("SELECT fromEmail, date, subject, textContent FROM message_table")
-    LiveData<List<Message>> getRecyclerviewData();
-     */
 
 }

+ 16 - 2
app/src/main/java/com/noahvogt/miniprojekt/ui/archive/ArchiveFragment.java

@@ -8,6 +8,8 @@ import android.widget.TextView;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.fragment.app.DialogFragment;
 import androidx.fragment.app.Fragment;
 import androidx.lifecycle.Observer;
 import androidx.lifecycle.ViewModelProvider;
@@ -16,10 +18,12 @@ import androidx.recyclerview.widget.RecyclerView;
 
 import com.noahvogt.miniprojekt.MainActivity;
 import com.noahvogt.miniprojekt.R;
+import com.noahvogt.miniprojekt.ui.DataBase.Message;
 import com.noahvogt.miniprojekt.ui.home.CustomAdapter;
+import com.noahvogt.miniprojekt.ui.show.MessageShowFragment;
 import com.noahvogt.miniprojekt.ui.slideshow.EmailViewModel;
 
-public class ArchiveFragment extends Fragment {
+public class ArchiveFragment extends Fragment implements CustomAdapter.SelectedMessage{
 
     private ArchiveViewModel archiveViewModel;
     EmailViewModel mEmailViewModel;
@@ -32,7 +36,7 @@ public class ArchiveFragment extends Fragment {
 
         recyclerView = MainActivity.recyclerView.findViewById(R.id.recyclerView);
 
-        final CustomAdapter adapter = new CustomAdapter(new CustomAdapter.EmailDiff());
+        final CustomAdapter adapter = new CustomAdapter(new CustomAdapter.EmailDiff(), this);
 
         /* Attach the adapter to the recyclerview to populate items */
         recyclerView.setAdapter(adapter);
@@ -43,6 +47,9 @@ public class ArchiveFragment extends Fragment {
         mEmailViewModel.getArchiveMessage().observe(getViewLifecycleOwner(), messages -> {
             /* Update the cached copy of the messages in the adapter*/
             adapter.submitList(messages);
+            /*get List of Message to show them onClick */
+            adapter.getList(messages);
+
         });
 
 
@@ -64,4 +71,11 @@ public class ArchiveFragment extends Fragment {
     }
 
 
+    @Override
+    public void selectedMessage(Message messages) {
+
+        AppCompatActivity activity = (AppCompatActivity) getContext();
+        DialogFragment dialog = MessageShowFragment.newInstance(messages);
+        dialog.show(activity.getSupportFragmentManager(), "tag");
+    }
 }

+ 47 - 2
app/src/main/java/com/noahvogt/miniprojekt/ui/gallery/GalleryFragment.java

@@ -2,12 +2,16 @@ package com.noahvogt.miniprojekt.ui.gallery;
 
 import android.os.Bundle;
 import android.view.LayoutInflater;
+import android.view.MotionEvent;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.TextView;
+import android.widget.Toast;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.fragment.app.DialogFragment;
 import androidx.fragment.app.Fragment;
 import androidx.lifecycle.Observer;
 import androidx.lifecycle.ViewModelProvider;
@@ -16,10 +20,14 @@ import androidx.recyclerview.widget.RecyclerView;
 
 import com.noahvogt.miniprojekt.MainActivity;
 import com.noahvogt.miniprojekt.R;
+import com.noahvogt.miniprojekt.ui.DataBase.Message;
 import com.noahvogt.miniprojekt.ui.home.CustomAdapter;
+import com.noahvogt.miniprojekt.ui.show.MessageShowFragment;
 import com.noahvogt.miniprojekt.ui.slideshow.EmailViewModel;
 
-public class GalleryFragment extends Fragment{
+import org.jetbrains.annotations.NotNull;
+
+public class GalleryFragment extends Fragment implements CustomAdapter.SelectedMessage{
 
     EmailViewModel mEmailViewModel;
     RecyclerView recyclerView;
@@ -43,7 +51,32 @@ public class GalleryFragment extends Fragment{
 
         recyclerView = MainActivity.recyclerView.findViewById(R.id.recyclerView);
 
-        final CustomAdapter adapter = new CustomAdapter(new CustomAdapter.EmailDiff());
+        recyclerView.setOnClickListener(v -> Toast.makeText(getContext(), "Single Interception Click on position :"+v,
+                Toast.LENGTH_SHORT).show());
+
+        recyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
+            @Override
+            public boolean onInterceptTouchEvent(@NonNull @NotNull RecyclerView rv, @NonNull @NotNull MotionEvent e) {
+              //  Toast.makeText(getContext(), "Single Interception Click on position :"+rv,
+             //           Toast.LENGTH_SHORT).show();
+                return false;
+            }
+
+            @Override
+            public void onTouchEvent(@NonNull @NotNull RecyclerView rv, @NonNull @NotNull MotionEvent e) {
+                Toast.makeText(getContext(), "Single Click on position :"+rv,
+                        Toast.LENGTH_SHORT).show();
+
+            }
+
+            @Override
+            public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {
+
+            }
+        });
+
+
+        final CustomAdapter adapter = new CustomAdapter(new CustomAdapter.EmailDiff(), this);
 
         /* Attach the adapter to the recyclerview to populate items */
         recyclerView.setAdapter(adapter);
@@ -53,11 +86,23 @@ public class GalleryFragment extends Fragment{
         mEmailViewModel.getSentMessage().observe(getViewLifecycleOwner(), messages -> {
             /* Update the cached copy of the messages in the adapter*/
             adapter.submitList(messages);
+            /*get List of Message to show them onClick */
+            adapter.getList(messages);
         });
 
+
+
         return root;
 
     }
 
 
+    @Override
+    public void selectedMessage(Message messages) {
+
+        AppCompatActivity activity = (AppCompatActivity) getContext();
+        DialogFragment dialog = MessageShowFragment.newInstance(messages);
+        dialog.show(activity.getSupportFragmentManager(), "tag");
+
+    }
 }

+ 18 - 8
app/src/main/java/com/noahvogt/miniprojekt/ui/home/CustomAdapter.java

@@ -1,10 +1,8 @@
-package com.noahvogt.miniprojekt.ui.home;
+ package com.noahvogt.miniprojekt.ui.home;
 
 
 import android.os.Build;
-import android.view.View;
 import android.view.ViewGroup;
-import android.widget.Toast;
 
 
 import androidx.annotation.NonNull;
@@ -12,30 +10,41 @@ import androidx.annotation.RequiresApi;
 import androidx.recyclerview.widget.DiffUtil;
 import androidx.recyclerview.widget.ListAdapter;
 
-import com.noahvogt.miniprojekt.MainActivity;
 import com.noahvogt.miniprojekt.ui.DataBase.Message;
 import com.noahvogt.miniprojekt.ui.slideshow.EmailViewHolder;
 
 
+import java.util.List;
 import java.util.Objects;
 
 public class CustomAdapter extends ListAdapter<Message, EmailViewHolder> {
 
-    public CustomAdapter(@NonNull DiffUtil.ItemCallback<Message> diffCallback) {
+    public SelectedMessage selectedMessage;
+    public List<Message> messageList;
+
+    public CustomAdapter(@NonNull DiffUtil.ItemCallback<Message> diffCallback, SelectedMessage selectedMessage) {
         super(diffCallback);
+        this.selectedMessage = selectedMessage;
     }
 
     @Override
     public EmailViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
-        return EmailViewHolder.create(parent);
+        return EmailViewHolder.create(parent,selectedMessage, messageList);
     }
 
     /* bind data to View*/
     @Override
     public void onBindViewHolder(EmailViewHolder holder, int position) {
         Message current = getItem(position);
-        holder.bind(current.getFrom(),current.getSubject(), current.getDate() ,current.getTextContent());
-        EmailViewHolder.putCurrent(current);
+        holder.bind(current.getFrom(),current.getSubject(), current.getDate() ,current.getTextContent()); }
+
+    /*get List from adapter which is shown*/
+    public void getList(List<Message> messageList){
+        this.messageList = messageList;
+    }
+
+    public interface SelectedMessage{
+        void selectedMessage(Message messages);
     }
 
     public static class EmailDiff extends DiffUtil.ItemCallback<Message> {
@@ -51,5 +60,6 @@ public class CustomAdapter extends ListAdapter<Message, EmailViewHolder> {
             return Objects.equals(oldItem.getId(), newItem.getId());
         }
     }
+
 }
 

+ 15 - 2
app/src/main/java/com/noahvogt/miniprojekt/ui/home/HomeFragment.java

@@ -9,6 +9,8 @@ import android.widget.TextView;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.fragment.app.DialogFragment;
 import androidx.fragment.app.Fragment;
 import androidx.lifecycle.Observer;
 import androidx.lifecycle.ViewModelProvider;
@@ -17,9 +19,11 @@ import androidx.recyclerview.widget.RecyclerView;
 
 import com.noahvogt.miniprojekt.MainActivity;
 import com.noahvogt.miniprojekt.R;
+import com.noahvogt.miniprojekt.ui.DataBase.Message;
+import com.noahvogt.miniprojekt.ui.show.MessageShowFragment;
 import com.noahvogt.miniprojekt.ui.slideshow.EmailViewModel;
 
-public class HomeFragment extends Fragment {
+public class HomeFragment extends Fragment implements CustomAdapter.SelectedMessage{
 
     private HomeViewModel homeViewModel;
     EmailViewModel mEmailViewModel;
@@ -32,7 +36,7 @@ public class HomeFragment extends Fragment {
 
         recyclerView = MainActivity.recyclerView.findViewById(R.id.recyclerView);
 
-        final CustomAdapter adapter = new CustomAdapter(new CustomAdapter.EmailDiff());
+        final CustomAdapter adapter = new CustomAdapter(new CustomAdapter.EmailDiff(), this);
 
         /* Attach the adapter to the recyclerview to populate items */
         recyclerView.setAdapter(adapter);
@@ -43,6 +47,9 @@ public class HomeFragment extends Fragment {
         mEmailViewModel.getInboxMessage().observe(getViewLifecycleOwner(), messages -> {
             /* Update the cached copy of the messages in the adapter*/
             adapter.submitList(messages);
+            /*get List of Message to show them onClick */
+            adapter.getList(messages);
+
         });
 
 
@@ -61,6 +68,12 @@ public class HomeFragment extends Fragment {
     }
 
 
+    @Override
+    public void selectedMessage(Message messages) {
 
+        AppCompatActivity activity = (AppCompatActivity) getContext();
+        DialogFragment dialog = MessageShowFragment.newInstance(messages);
+        dialog.show(activity.getSupportFragmentManager(), "tag");
 
+    }
 }

+ 10 - 12
app/src/main/java/com/noahvogt/miniprojekt/ui/show/MessageShowFragment.java

@@ -28,14 +28,14 @@ public class MessageShowFragment extends DialogFragment implements PopupMenu.OnM
 
 
     public TextView showTo;
-    public TextView receivingAddressObject;
-    public TextView subjectObject;
-    public TextView messageBodyObject;
+    public TextView showFrom;
+    public TextView showSubject;
+    public TextView showMessage;
 
     private static Message mCurrent;
     private EmailViewModel mEmailViewModel;
     public static MessageShowFragment newInstance(com.noahvogt.miniprojekt.ui.DataBase.Message current) {
-        mCurrent = current;
+       mCurrent = current;
         return new MessageShowFragment();}
 
     /* set theming style */
@@ -71,16 +71,14 @@ public class MessageShowFragment extends DialogFragment implements PopupMenu.OnM
         ImageButton attachButton = view.findViewById(R.id.show_message_attach_button);
 
         showTo = (TextView) view.findViewById(R.id.show_To);
-        receivingAddressObject = (EditText) view.findViewById(R.id.create_message_receiving_address_text);
-        subjectObject = (EditText) view.findViewById(R.id.create_message_subject_text);
-        messageBodyObject = (EditText) view.findViewById(R.id.create_message_body_text);
+        showFrom = (TextView) view.findViewById(R.id.show_From);
+        showSubject = (TextView) view.findViewById(R.id.show_Subject);
+        showMessage = (TextView) view.findViewById(R.id.show_Message);
 
         showTo.setText(mCurrent.getFrom());
-
-
-
-
-
+        showFrom.setText(mCurrent.getFrom());
+        showSubject.setText(mCurrent.getSubject());
+        showMessage.setText(mCurrent.getTextContent());
 
 
         // TODO: add cc + bcc functionality

+ 15 - 5
app/src/main/java/com/noahvogt/miniprojekt/ui/slideshow/DraftFragment.java

@@ -8,6 +8,8 @@ import android.widget.TextView;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.fragment.app.DialogFragment;
 import androidx.fragment.app.Fragment;
 import androidx.lifecycle.Observer;
 import androidx.lifecycle.ViewModelProvider;
@@ -16,9 +18,11 @@ import androidx.recyclerview.widget.RecyclerView;
 
 import com.noahvogt.miniprojekt.MainActivity;
 import com.noahvogt.miniprojekt.R;
+import com.noahvogt.miniprojekt.ui.DataBase.Message;
 import com.noahvogt.miniprojekt.ui.home.CustomAdapter;
+import com.noahvogt.miniprojekt.ui.show.MessageShowFragment;
 
-public class  DraftFragment extends Fragment {
+public class  DraftFragment extends Fragment implements CustomAdapter.SelectedMessage{
 
    private DraftViewModel draftViewModel;
    EmailViewModel mEmailViewModel;
@@ -32,7 +36,7 @@ public class  DraftFragment extends Fragment {
 
         recyclerView = MainActivity.recyclerView.findViewById(R.id.recyclerView);
 
-        final CustomAdapter adapter = new CustomAdapter(new CustomAdapter.EmailDiff());
+        final CustomAdapter adapter = new CustomAdapter(new CustomAdapter.EmailDiff(), this);
 
         /* Attach the adapter to the recyclerview to populate items */
         recyclerView.setAdapter(adapter);
@@ -43,6 +47,9 @@ public class  DraftFragment extends Fragment {
         mEmailViewModel.getDraftMessage().observe(getViewLifecycleOwner(), messages -> {
             /* Update the cached copy of the messages in the adapter*/
             adapter.submitList(messages);
+            /*get List of Message to show them onClick */
+            adapter.getList(messages);
+
         });
 
         draftViewModel =
@@ -59,9 +66,12 @@ public class  DraftFragment extends Fragment {
     }
 
 
+    @Override
+    public void selectedMessage(Message messages) {
 
-
-
-
+        AppCompatActivity activity = (AppCompatActivity) getContext();
+        DialogFragment dialog = MessageShowFragment.newInstance(messages);
+        dialog.show(activity.getSupportFragmentManager(), "tag");
+    }
 }
 

+ 12 - 62
app/src/main/java/com/noahvogt/miniprojekt/ui/slideshow/EmailViewHolder.java

@@ -7,13 +7,17 @@ import android.widget.TextView;
 import android.widget.Toast;
 
 import com.noahvogt.miniprojekt.ui.DataBase.Message;
+import com.noahvogt.miniprojekt.ui.home.CustomAdapter;
 import com.noahvogt.miniprojekt.ui.show.MessageShowFragment;
 import com.noahvogt.miniprojekt.R;
 
 import androidx.appcompat.app.AppCompatActivity;
 import androidx.fragment.app.DialogFragment;
+import androidx.recyclerview.widget.DiffUtil;
 import androidx.recyclerview.widget.RecyclerView;
 
+import java.util.List;
+
 /* adds the content to the View of RecyclerView*/
 public class EmailViewHolder extends RecyclerView.ViewHolder {
     private final TextView fromItemView;
@@ -21,9 +25,10 @@ public class EmailViewHolder extends RecyclerView.ViewHolder {
     private final TextView dateItemView;
     private final TextView messageItemView;
 
-    public static Message curent;
 
-    private EmailViewHolder(View itemView) {
+    private EmailViewHolder(View itemView,
+                            CustomAdapter.SelectedMessage selectedMessage,
+                            List<Message> messageList) {
         super(itemView);
         fromItemView = itemView.findViewById(R.id.textView);
         subjectItemView = itemView.findViewById(R.id.subject);
@@ -32,15 +37,7 @@ public class EmailViewHolder extends RecyclerView.ViewHolder {
         itemView.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                Toast.makeText(v.getContext(), curent.getFrom(), Toast.LENGTH_LONG).show();
-
-                AppCompatActivity activity = (AppCompatActivity) v.getContext();
-
-                DialogFragment dialog = MessageShowFragment.newInstance(curent);
-                dialog.show(activity.getSupportFragmentManager(), "tag");
-
-
-
+                selectedMessage.selectedMessage(messageList.get(getBindingAdapterPosition()));
 
 
             }
@@ -54,62 +51,15 @@ public class EmailViewHolder extends RecyclerView.ViewHolder {
         messageItemView.setText(message);
     }
 
-    public static EmailViewHolder create(ViewGroup parent) {
+    public static EmailViewHolder create(ViewGroup parent,
+                                         CustomAdapter.SelectedMessage selectedMessage,
+                                         List<Message> messageList) {
          View view = LayoutInflater.from(parent.getContext())
                 .inflate(R.layout.fragment_home, parent, false);
-        return new EmailViewHolder(view );
+        return new EmailViewHolder(view, selectedMessage, messageList);
     }
 
-    public static void putCurrent(Message current){
-        curent = current;
-    }
-
-
-
-   /* public void createNewEmailDialog(){
-        // define View window
-        AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(itemView.getContext());
-
-        // init text field variables
-        newemail_name = emailPopupView.findViewById(R.id.popup_material_name_asking_text);
-        newemail_email = emailPopupView.findViewById(R.id.popup_material_email_asking_text);
-        newemail_password = emailPopupView.findViewById(R.id.popup_material_password_asking_text);
-
-        // init button variables
-        Button newemail_save_button = (Button) emailPopupView.findViewById(R.id.saveButton);
-        // may not be private
-        Button newemail_cancel_button = (Button) emailPopupView.findViewById(R.id.cancelButton);
-
-        // open View window
-        dialogBuilder.setView(emailPopupView);
-        dialog = dialogBuilder.create();
-        dialog.show();
-
-        // store user input
-        newemail_save_button.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-
-                // store user input (only needed for DEBUGGING)
-                String name = newemail_name.getText().toString();
-                String email = newemail_email.getText().toString();
-                String password = newemail_password.getText().toString();
-
-                if (!mailFunctions.validateEmail(newemail_email) | !mailFunctions.validateName(newemail_name) | !mailFunctions.validatePassword(newemail_password)) {
-                    return;
-                }
-
-                // show all strings the user gave, this will later be stored to a secure database and checked for validation
-                showToast(name);
-                showToast(email);
-                showToast(password);
-
-
-                showSnackbar(emailPopupView,"save button clicked");
-            }
-        });
 
-    */
 
     }
 

+ 17 - 2
app/src/main/java/com/noahvogt/miniprojekt/ui/spam/SpamFragment.java

@@ -8,6 +8,8 @@ import android.widget.TextView;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.fragment.app.DialogFragment;
 import androidx.fragment.app.Fragment;
 import androidx.lifecycle.Observer;
 import androidx.lifecycle.ViewModelProvider;
@@ -16,10 +18,12 @@ import androidx.recyclerview.widget.RecyclerView;
 
 import com.noahvogt.miniprojekt.MainActivity;
 import com.noahvogt.miniprojekt.R;
+import com.noahvogt.miniprojekt.ui.DataBase.Message;
 import com.noahvogt.miniprojekt.ui.home.CustomAdapter;
+import com.noahvogt.miniprojekt.ui.show.MessageShowFragment;
 import com.noahvogt.miniprojekt.ui.slideshow.EmailViewModel;
 
-public class SpamFragment extends Fragment {
+public class SpamFragment extends Fragment implements CustomAdapter.SelectedMessage{
 
     private SpamViewModel spamViewModel;
     EmailViewModel mEmailViewModel;
@@ -32,7 +36,7 @@ public class SpamFragment extends Fragment {
 
         recyclerView = MainActivity.recyclerView.findViewById(R.id.recyclerView);
 
-        final CustomAdapter adapter = new CustomAdapter(new CustomAdapter.EmailDiff());
+        final CustomAdapter adapter = new CustomAdapter(new CustomAdapter.EmailDiff(), this);
 
         /* Attach the adapter to the recyclerview to populate items */
         recyclerView.setAdapter(adapter);
@@ -43,6 +47,9 @@ public class SpamFragment extends Fragment {
         mEmailViewModel.getSpamMessage().observe(getViewLifecycleOwner(), messages -> {
             /* Update the cached copy of the messages in the adapter*/
             adapter.submitList(messages);
+            /*get List of Message to show them onClick */
+            adapter.getList(messages);
+
         });
 
         // mEmailViewModel.deleteNewMessage();
@@ -62,5 +69,13 @@ public class SpamFragment extends Fragment {
 
 
 
+    }
+
+    @Override
+    public void selectedMessage(Message messages) {
+
+        AppCompatActivity activity = (AppCompatActivity) getContext();
+        DialogFragment dialog = MessageShowFragment.newInstance(messages);
+        dialog.show(activity.getSupportFragmentManager(), "tag");
     }
 }

+ 2 - 2
app/src/main/res/layout/message_show_fragment.xml

@@ -130,7 +130,7 @@
                 tools:layout_editor_absoluteX="1dp">
 
             <TextView
-                    android:id="@+id/show_message_subject_text"
+                    android:id="@+id/show_Subject"
                     android:layout_width="match_parent"
                     android:layout_height="match_parent"
 
@@ -159,7 +159,7 @@
                 tools:layout_editor_absoluteX="1dp">
 
                 <TextView
-                    android:id="@+id/show_message_body_text"
+                    android:id="@+id/show_Message"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:minHeight="160dp"