GalleryFragment.java 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. package com.noahvogt.miniprojekt.ui.gallery;
  2. import android.os.Bundle;
  3. import android.view.LayoutInflater;
  4. import android.view.MotionEvent;
  5. import android.view.View;
  6. import android.view.ViewGroup;
  7. import android.widget.TextView;
  8. import android.widget.Toast;
  9. import androidx.annotation.NonNull;
  10. import androidx.annotation.Nullable;
  11. import androidx.appcompat.app.AppCompatActivity;
  12. import androidx.fragment.app.DialogFragment;
  13. import androidx.fragment.app.Fragment;
  14. import androidx.lifecycle.Observer;
  15. import androidx.lifecycle.ViewModelProvider;
  16. import androidx.recyclerview.widget.LinearLayoutManager;
  17. import androidx.recyclerview.widget.RecyclerView;
  18. import com.noahvogt.miniprojekt.MainActivity;
  19. import com.noahvogt.miniprojekt.R;
  20. import com.noahvogt.miniprojekt.ui.DataBase.Message;
  21. import com.noahvogt.miniprojekt.ui.home.CustomAdapter;
  22. import com.noahvogt.miniprojekt.ui.show.MessageShowFragment;
  23. import com.noahvogt.miniprojekt.ui.slideshow.EmailViewModel;
  24. import org.jetbrains.annotations.NotNull;
  25. public class GalleryFragment extends Fragment implements CustomAdapter.SelectedMessage{
  26. EmailViewModel mEmailViewModel;
  27. RecyclerView recyclerView;
  28. public View onCreateView(@NonNull LayoutInflater inflater,
  29. ViewGroup container, Bundle savedInstanceState) {
  30. // mEmailViewModel.deleteNewMessage();
  31. GalleryViewModel galleryViewModel = new ViewModelProvider(this).get(GalleryViewModel.class);
  32. View root = inflater.inflate(R.layout.fragment_gallery, container, false);
  33. final TextView textView = root.findViewById(R.id.text_gallery);
  34. galleryViewModel.getText().observe(getViewLifecycleOwner(), new Observer<String>() {
  35. @Override
  36. public void onChanged(@Nullable String s) {
  37. textView.setText(s);
  38. }
  39. });
  40. recyclerView = MainActivity.recyclerView.findViewById(R.id.recyclerView);
  41. recyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
  42. @Override
  43. public boolean onInterceptTouchEvent(@NonNull @NotNull RecyclerView rv, @NonNull @NotNull MotionEvent e) {
  44. // Toast.makeText(getContext(), "Single Interception Click on position :"+rv,
  45. // Toast.LENGTH_SHORT).show();
  46. return false;
  47. }
  48. @Override
  49. public void onTouchEvent(@NonNull @NotNull RecyclerView rv, @NonNull @NotNull MotionEvent e) {
  50. Toast.makeText(getContext(), "Single Click on position :"+rv,
  51. Toast.LENGTH_SHORT).show();
  52. }
  53. @Override
  54. public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {
  55. }
  56. });
  57. final CustomAdapter adapter = new CustomAdapter(new CustomAdapter.EmailDiff(), this);
  58. /* Attach the adapter to the recyclerview to populate items */
  59. recyclerView.setAdapter(adapter);
  60. recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
  61. mEmailViewModel = new ViewModelProvider(this).get(EmailViewModel.class);
  62. mEmailViewModel.getSentMessage().observe(getViewLifecycleOwner(), messages -> {
  63. /* Update the cached copy of the messages in the adapter*/
  64. adapter.submitList(messages);
  65. /*get List of Message to show them onClick */
  66. adapter.getList(messages);
  67. });
  68. return root;
  69. }
  70. @Override
  71. public void selectedMessage(Message messages, EmailViewModel emailViewModel) {
  72. AppCompatActivity activity = (AppCompatActivity) getContext();
  73. DialogFragment dialog = MessageShowFragment.newInstance(messages, mEmailViewModel);
  74. dialog.show(activity.getSupportFragmentManager(), "tag");
  75. }
  76. }