DraftFragment.java 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package com.noahvogt.miniprojekt.ui.slideshow;
  2. import android.os.Bundle;
  3. import android.view.LayoutInflater;
  4. import android.view.View;
  5. import android.view.ViewGroup;
  6. import android.widget.TextView;
  7. import androidx.annotation.NonNull;
  8. import androidx.annotation.Nullable;
  9. import androidx.appcompat.app.AppCompatActivity;
  10. import androidx.fragment.app.DialogFragment;
  11. import androidx.fragment.app.Fragment;
  12. import androidx.lifecycle.Observer;
  13. import androidx.lifecycle.ViewModelProvider;
  14. import androidx.recyclerview.widget.LinearLayoutManager;
  15. import androidx.recyclerview.widget.RecyclerView;
  16. import com.noahvogt.miniprojekt.data.EmailViewModel;
  17. import com.noahvogt.miniprojekt.MainActivity;
  18. import com.noahvogt.miniprojekt.R;
  19. import com.noahvogt.miniprojekt.DataBase.Message;
  20. import com.noahvogt.miniprojekt.data.CustomAdapter;
  21. import com.noahvogt.miniprojekt.MessageCreateFragment;
  22. public class DraftFragment extends Fragment implements CustomAdapter.SelectedMessage{
  23. private DraftViewModel draftViewModel;
  24. EmailViewModel mEmailViewModel;
  25. RecyclerView recyclerView;
  26. public View onCreateView(@NonNull LayoutInflater inflater,
  27. ViewGroup container, Bundle savedInstanceState) {
  28. recyclerView = MainActivity.recyclerView.findViewById(R.id.recyclerView);
  29. final CustomAdapter adapter = new CustomAdapter(new CustomAdapter.EmailDiff(), this);
  30. /* Attach the adapter to the recyclerview to populate items */
  31. recyclerView.setAdapter(adapter);
  32. recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
  33. //mEmailViewModel = new ViewModelProvider(this).get(EmailViewModel.class);
  34. mEmailViewModel = new ViewModelProvider(this).get(EmailViewModel.class);
  35. mEmailViewModel.getDraftMessage().observe(getViewLifecycleOwner(), messages -> {
  36. /* Update the cached copy of the messages in the adapter*/
  37. adapter.submitList(messages);
  38. /*get List of Message to show them onClick */
  39. adapter.getList(messages);
  40. /*gives list of messages to EmailViewModel */
  41. MainActivity.mEmailViewModel.setListAll(messages, "Drafts");
  42. });
  43. draftViewModel =
  44. new ViewModelProvider(this).get(DraftViewModel.class);
  45. View root = inflater.inflate(R.layout.fragment_slideshow, container, false);
  46. final TextView textView = root.findViewById(R.id.text_slideshow);
  47. draftViewModel.getText().observe(getViewLifecycleOwner(), new Observer<String>() {
  48. @Override
  49. public void onChanged(@Nullable String s) {
  50. textView.setText(s);
  51. }
  52. });
  53. return root;
  54. }
  55. @Override
  56. public void selectedMessage(Message messages, EmailViewModel emailViewModel) {
  57. MessageCreateFragment messageCreateFragment = new MessageCreateFragment();
  58. //TODO: make this Fragment editable
  59. AppCompatActivity activity = (AppCompatActivity) getContext();
  60. DialogFragment dialog = messageCreateFragment.getMessage(messages, emailViewModel, messageCreateFragment);
  61. dialog.show(activity.getSupportFragmentManager(), "tag");
  62. }
  63. }