Bladeren bron

added emailViewer, but can only View one item

Simon Hammer 3 jaren geleden
bovenliggende
commit
7ef31fdee1

+ 9 - 6
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.slideshow.EmailViewHolder;
 import com.noahvogt.miniprojekt.ui.slideshow.EmailViewModel;
 
 import java.text.SimpleDateFormat;
@@ -130,6 +131,13 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
         recyclerView.setAdapter(adapter);
         recyclerView.setLayoutManager(new LinearLayoutManager(this));
 
+        /* get Inbox Messages in Recyclerviewer at begining is overwritten by Fragments but has to stay*/
+        mEmailViewModel = new ViewModelProvider(this).get(EmailViewModel.class);
+        mEmailViewModel.getInboxMessage().observe(this, messages -> {
+            /* Update the cached copy of the messages in the adapter*/
+            adapter.submitList(messages);
+        });
+
 
         Button settingButton = findViewById(R.id.settingsButton);
         settingButton.setOnClickListener(new View.OnClickListener() {
@@ -139,12 +147,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
                 startActivity(i);
             }
         });
-        /* get Inbox Messages in Recyclerviewer at begining is overwritten by Fragments but has to stay*/
-        mEmailViewModel = new ViewModelProvider(this).get(EmailViewModel.class);
-        mEmailViewModel.getInboxMessage().observe(this, messages -> {
-            /* Update the cached copy of the messages in the adapter*/
-            adapter.submitList(messages);
-        });
+
 
 
         /* Start email Writer*/

+ 0 - 13
app/src/main/java/com/noahvogt/miniprojekt/NewDraftMessageActivity.java

@@ -13,25 +13,12 @@ import android.widget.Toast;
 
 public class NewDraftMessageActivity extends AppCompatActivity {
 
-
-
-
-
-
    @Override
     public void onCreate(Bundle savedInstanceState){
         super.onCreate(savedInstanceState);
         setContentView(R.layout.fragment_home);
 
        NewDraftMessageActivity.this.finish();
-
-
-
-
-
-
-
-
         }
     }
 

+ 1 - 2
app/src/main/java/com/noahvogt/miniprojekt/messageCreateFragment.java

@@ -43,7 +43,7 @@ public class messageCreateFragment extends DialogFragment implements PopupMenu.O
     public Activity activity = new Activity();
     public static Intent replyIntent = new Intent();
 
-    static messageCreateFragment newInstance() {
+    public static messageCreateFragment newInstance() {
         return new messageCreateFragment();
     }
     private AlertDialog dialog;
@@ -68,7 +68,6 @@ public class messageCreateFragment extends DialogFragment implements PopupMenu.O
         View view = inflater.inflate(R.layout.message_create_fragment, container, false);
 
         /* init vars */
-
         ImageButton closeButton = view.findViewById(R.id.create_message_close_button);
         final ImageButton sendButton = view.findViewById(R.id.create_message_send_button);
         ImageButton dotButton = view.findViewById(R.id.create_message_dots_button);

+ 1 - 1
app/src/main/java/com/noahvogt/miniprojekt/ui/DataBase/EmailRepository.java

@@ -25,9 +25,9 @@ public class EmailRepository {
     public EmailRepository(Application application) {
         EmailRoomDatabase db = EmailRoomDatabase.getDatabase(application);
         messageDao = db.messageDao();
+        mInboxMessage = messageDao.getInboxMessages();
         mDraftMessage = messageDao.getDraftMessages();
         mArchiveMessage = messageDao.getArchiveMessages();
-        mInboxMessage = messageDao.getInboxMessages();
         mSentMessage = messageDao.getSentMessages();
         mSpamMessage = messageDao.getSpamMessages();
     }

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

@@ -38,7 +38,7 @@ public abstract class EmailRoomDatabase extends RoomDatabase{
 
     static EmailRoomDatabase getDatabase(final Context context) {
         if (INSTANCE == null) {
-            /* synchronize all threads of WordRoomDatabase */
+            /* synchronize all threads of EmailRoomDatabase */
             synchronized (EmailRoomDatabase.class) {
                 if (INSTANCE == null) {
                     /* passes the interface in the Room and deletes old data/schema from device*/
@@ -73,10 +73,11 @@ public abstract class EmailRoomDatabase extends RoomDatabase{
                dao.insert(word);
 
                word = new Message("Noah", null, null,
-                       "arldemeier", "bobo", "sentTest", "i could cry", "Sent",
+                       "arldemeier", "bobo", "sentTest", "i could cry", "Inbox",
                        true);
                dao.insert(word);
 
+               /*
                for (int n = 1; n < 20; n++) {
                    word = new Message("Simon", null, null,
                            "stefan", "tomorrow", "sent20", "lets goo","Sent",
@@ -103,6 +104,9 @@ public abstract class EmailRoomDatabase extends RoomDatabase{
                 dao.insert(word);
 
 
+                */
+
+
             });
         }
     };

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

@@ -74,11 +74,6 @@ 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")

+ 1 - 3
app/src/main/java/com/noahvogt/miniprojekt/ui/gallery/GalleryFragment.java

@@ -21,7 +21,6 @@ import com.noahvogt.miniprojekt.ui.slideshow.EmailViewModel;
 
 public class GalleryFragment extends Fragment{
 
-    private GalleryViewModel galleryViewModel;
     EmailViewModel mEmailViewModel;
     RecyclerView recyclerView;
 
@@ -32,8 +31,7 @@ public class GalleryFragment extends Fragment{
 
        // mEmailViewModel.deleteNewMessage();
 
-        galleryViewModel =
-                new ViewModelProvider(this).get(GalleryViewModel.class);
+        GalleryViewModel galleryViewModel = new ViewModelProvider(this).get(GalleryViewModel.class);
         View root = inflater.inflate(R.layout.fragment_gallery, container, false);
         final TextView textView = root.findViewById(R.id.text_gallery);
         galleryViewModel.getText().observe(getViewLifecycleOwner(), new Observer<String>() {

+ 4 - 3
app/src/main/java/com/noahvogt/miniprojekt/ui/home/CustomAdapter.java

@@ -2,7 +2,9 @@ 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;
@@ -10,6 +12,7 @@ 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;
 
@@ -18,8 +21,6 @@ import java.util.Objects;
 
 public class CustomAdapter extends ListAdapter<Message, EmailViewHolder> {
 
-
-
     public CustomAdapter(@NonNull DiffUtil.ItemCallback<Message> diffCallback) {
         super(diffCallback);
     }
@@ -34,6 +35,7 @@ public class CustomAdapter extends ListAdapter<Message, EmailViewHolder> {
     public void onBindViewHolder(EmailViewHolder holder, int position) {
         Message current = getItem(position);
         holder.bind(current.getFrom(),current.getSubject(), current.getDate() ,current.getTextContent());
+        EmailViewHolder.putCurrent(current);
     }
 
     public static class EmailDiff extends DiffUtil.ItemCallback<Message> {
@@ -49,6 +51,5 @@ public class CustomAdapter extends ListAdapter<Message, EmailViewHolder> {
             return Objects.equals(oldItem.getId(), newItem.getId());
         }
     }
-
 }
 

+ 5 - 0
app/src/main/java/com/noahvogt/miniprojekt/ui/home/SettingsActivity.java

@@ -5,6 +5,7 @@ import android.os.Bundle;
 import androidx.appcompat.app.AppCompatActivity;
 
 import com.noahvogt.miniprojekt.R;
+import com.noahvogt.miniprojekt.ui.show.MessageShowFragment;
 
 import java.util.Objects;
 
@@ -28,5 +29,9 @@ public class SettingsActivity extends AppCompatActivity {
             // below line is to inflate our fragment.
             getSupportFragmentManager().beginTransaction().add(R.id.idFrameLayout, new SettingsFragment()).commit();
         }
+
+        if (findViewById(R.id.show_Layout) != null){
+            getSupportFragmentManager().beginTransaction().add(R.id.show_Layout, new MessageShowFragment()).commit();
+        }
     }
 }

+ 20 - 24
app/src/main/java/com/noahvogt/miniprojekt/ui/show/MessageShowFragment.java

@@ -14,36 +14,37 @@ import android.widget.Toast;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
-import androidx.fragment.app.Fragment;
+import androidx.fragment.app.DialogFragment;
 import androidx.lifecycle.Observer;
 import androidx.lifecycle.ViewModelProvider;
 
 import com.noahvogt.miniprojekt.R;
+import com.noahvogt.miniprojekt.ui.DataBase.Message;
+import com.noahvogt.miniprojekt.ui.home.CustomAdapter;
+import com.noahvogt.miniprojekt.ui.slideshow.EmailViewModel;
 
 
-public class MessageShowFragment extends Fragment implements PopupMenu.OnMenuItemClickListener {
+public class MessageShowFragment extends DialogFragment implements PopupMenu.OnMenuItemClickListener {
 
 
-    public TextView sendingAddressObject;
+    public TextView showTo;
     public TextView receivingAddressObject;
     public TextView subjectObject;
     public TextView messageBodyObject;
 
-    private MessageShowViewModel messageShowViewModel;
+    private static Message mCurrent;
+    private EmailViewModel mEmailViewModel;
+    public static MessageShowFragment newInstance(com.noahvogt.miniprojekt.ui.DataBase.Message current) {
+        mCurrent = current;
+        return new MessageShowFragment();}
 
-
-
-
-    // set theming style
-    /*@Override
+    /* set theming style */
+    @Override
     public void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setStyle(DialogFragment.STYLE_NORMAL, R.style.messageCreateTheme);
     }
 
-     */
-
-
     @Nullable
     @Override
     public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
@@ -52,10 +53,10 @@ public class MessageShowFragment extends Fragment implements PopupMenu.OnMenuIte
 
         // init vars
 
-        messageShowViewModel =
+        MessageShowViewModel messageShowViewModel =
                 new ViewModelProvider(this).get(MessageShowViewModel.class);
         View root = inflater.inflate(R.layout.message_show_fragment, container, false);
-        final TextView textView = root.findViewById(R.id.show_message_receiving_address_layout);
+        final TextView textView = root.findViewById(R.id.show_To);
         messageShowViewModel.getText().observe(getViewLifecycleOwner(), new Observer<String>() {
             @Override
             public void onChanged(@Nullable String s) {
@@ -64,24 +65,19 @@ public class MessageShowFragment extends Fragment implements PopupMenu.OnMenuIte
         });
 
 
+
         ImageButton closeButton = view.findViewById(R.id.show_message_close_button);
         ImageButton dotButton = view.findViewById(R.id.show_message_dots_button);
         ImageButton attachButton = view.findViewById(R.id.show_message_attach_button);
 
-        sendingAddressObject = (EditText) view.findViewById(R.id.create_message_sending_address_text);
+        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);
 
-        // get string vars, MAYBE NOT HERE
-        String sendingAddress = sendingAddressObject.getText().toString();
-        String receivingAddress = receivingAddressObject.getText().toString();
-        //String subject = subjectObject.getText().toString();
-        String messageBody = messageBodyObject.getText().toString();
+        showTo.setText(mCurrent.getFrom());
 
 
-        /* dosen't wotk cause Activity is not extendet and used as variable */
-
 
 
 
@@ -94,7 +90,7 @@ public class MessageShowFragment extends Fragment implements PopupMenu.OnMenuIte
         closeButton.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-
+                    dismiss();
             }
 
         });
@@ -116,7 +112,7 @@ public class MessageShowFragment extends Fragment implements PopupMenu.OnMenuIte
             }
         });
 
-        return root;
+        return view;
     }
 
 

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

@@ -18,7 +18,7 @@ import com.noahvogt.miniprojekt.MainActivity;
 import com.noahvogt.miniprojekt.R;
 import com.noahvogt.miniprojekt.ui.home.CustomAdapter;
 
-public class DraftFragment extends Fragment {
+public class  DraftFragment extends Fragment {
 
    private DraftViewModel draftViewModel;
    EmailViewModel mEmailViewModel;

+ 21 - 25
app/src/main/java/com/noahvogt/miniprojekt/ui/slideshow/EmailViewHolder.java

@@ -3,21 +3,15 @@ package com.noahvogt.miniprojekt.ui.slideshow;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
-import android.widget.EditText;
 import android.widget.TextView;
 import android.widget.Toast;
 
-import com.noahvogt.miniprojekt.MainActivity;
+import com.noahvogt.miniprojekt.ui.DataBase.Message;
 import com.noahvogt.miniprojekt.ui.show.MessageShowFragment;
 import com.noahvogt.miniprojekt.R;
 
-import androidx.appcompat.app.AlertDialog;
-import androidx.drawerlayout.widget.DrawerLayout;
+import androidx.appcompat.app.AppCompatActivity;
 import androidx.fragment.app.DialogFragment;
-import androidx.fragment.app.Fragment;
-import androidx.fragment.app.FragmentManager;
-import androidx.navigation.Navigation;
-import androidx.navigation.ui.AppBarConfiguration;
 import androidx.recyclerview.widget.RecyclerView;
 
 /* adds the content to the View of RecyclerView*/
@@ -25,12 +19,11 @@ public class EmailViewHolder extends RecyclerView.ViewHolder {
     private final TextView fromItemView;
     private final TextView subjectItemView;
     private final TextView dateItemView;
-    public final TextView messageItemView;
+    private final TextView messageItemView;
 
-    private AppBarConfiguration mAppBarConfiguration;
+    public static Message curent;
 
-
-    private EmailViewHolder(View itemView, ViewGroup parent) {
+    private EmailViewHolder(View itemView) {
         super(itemView);
         fromItemView = itemView.findViewById(R.id.textView);
         subjectItemView = itemView.findViewById(R.id.subject);
@@ -39,18 +32,17 @@ public class EmailViewHolder extends RecyclerView.ViewHolder {
         itemView.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                Toast.makeText(v.getContext(), "clicked ViewHolder ", Toast.LENGTH_LONG).show();
-              /*  Fragment fragment = new MessageShowFragment();
-                if (!fragment.isAdded()){
-                    Toast.makeText(v.getContext(), "is not Added ", Toast.LENGTH_LONG).show();
-
-                    FragmentManager fragmentManager = fragment.getParentFragmentManager();
-                    fragmentManager.beginTransaction()
-                        .add(R.id.nav_show, MessageShowFragment.class, null)
-                        .commit();
-                }
+                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");
+
+
+
+
 
-               */
             }
         });
     }
@@ -63,9 +55,13 @@ public class EmailViewHolder extends RecyclerView.ViewHolder {
     }
 
     public static EmailViewHolder create(ViewGroup parent) {
-        View view = LayoutInflater.from(parent.getContext())
+         View view = LayoutInflater.from(parent.getContext())
                 .inflate(R.layout.fragment_home, parent, false);
-        return new EmailViewHolder(view, parent);
+        return new EmailViewHolder(view );
+    }
+
+    public static void putCurrent(Message current){
+        curent = current;
     }
 
 

+ 1 - 1
app/src/main/java/com/noahvogt/miniprojekt/ui/slideshow/EmailViewModel.java

@@ -23,8 +23,8 @@ public class EmailViewModel extends AndroidViewModel {
     public EmailViewModel(Application application) {
         super(application);
         mEmailRepository = new EmailRepository(application);
-        mDraftMessage = mEmailRepository.getDraftMessages();
         mInboxMessage = mEmailRepository.getInboxMessages();
+        mDraftMessage = mEmailRepository.getDraftMessages();
         mSentMessage = mEmailRepository.getSentMessages();
         mArchiveMessage = mEmailRepository.getArchiveMessages();
         mSpamMessage = mEmailRepository.getSpamMessage();

+ 10 - 0
app/src/main/res/layout/content_main.xml

@@ -27,6 +27,16 @@
 
     </androidx.recyclerview.widget.RecyclerView>
 
+    <!--fragment
+        android:id="@+id/show_fragment_container"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        app:defaultNavHost="true"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        app:navGraph="@navigation/mobile_navigation" /-->
+
         <com.google.android.material.floatingactionbutton.FloatingActionButton
             android:id="@+id/messageButton"
             app:layout_constraintBottom_toBottomOf="parent"

+ 3 - 23
app/src/main/res/layout/message_show_fragment.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
@@ -73,22 +73,8 @@
             android:orientation="vertical"
             android:gravity="top">
 
-            <com.google.android.material.textfield.TextInputLayout
-                style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
-                android:id="@+id/show_message_sending_address_layout"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-
-                android:layout_marginStart="12dp"
-                android:layout_marginLeft="12dp"
-                android:layout_marginTop="12dp"
-                android:layout_marginEnd="12dp"
-                android:layout_marginRight="12dp"
-                android:layout_marginBottom="12dp">
-
             <TextView
                 android:id="@+id/show_From"
-                android:text="@string/show_from"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
 
@@ -98,7 +84,6 @@
                 android:layout_marginEnd="12dp"
                 android:layout_marginRight="12dp"
                 android:layout_marginBottom="12dp" />
-            </com.google.android.material.textfield.TextInputLayout>
 
 
             <com.google.android.material.textfield.TextInputLayout
@@ -124,8 +109,7 @@
                     android:layout_marginTop="12dp"
                     android:layout_marginEnd="12dp"
                     android:layout_marginRight="12dp"
-                    android:layout_marginBottom="12dp"
-                    android:hint="@string/show_To" />
+                    android:layout_marginBottom="12dp" />
             </com.google.android.material.textfield.TextInputLayout>
 
 
@@ -149,8 +133,6 @@
                     android:id="@+id/show_message_subject_text"
                     android:layout_width="match_parent"
                     android:layout_height="match_parent"
-                    android:hint="@string/show_subject"
-                    android:inputType="textEmailSubject"
 
                     android:layout_marginStart="12dp"
                     android:layout_marginLeft="12dp"
@@ -182,8 +164,6 @@
                     android:layout_height="wrap_content"
                     android:minHeight="160dp"
                     android:textAlignment="viewStart"
-                    android:hint="Message ..."
-                    android:inputType="textMultiLine"
                     android:gravity="start" />
             </com.google.android.material.textfield.TextInputLayout>
 
@@ -196,4 +176,4 @@
         android:layout_width="match_parent"
         android:layout_height="match_parent" />
 
-</androidx.constraintlayout.widget.ConstraintLayout>
+</LinearLayout>