Эх сурвалжийг харах

renamed some folders, changed layout emailviewer, maxed Strings showen

Simon Hammer 3 жил өмнө
parent
commit
0914c80e3f
25 өөрчлөгдсөн 275 нэмэгдсэн , 216 устгасан
  1. 88 0
      app/schemas/com.noahvogt.miniprojekt.DataBase.EmailRoomDatabase/1.json
  2. 1 1
      app/src/main/AndroidManifest.xml
  3. 1 2
      app/src/main/java/com/noahvogt/miniprojekt/DataBase/EmailRepository.java
  4. 3 5
      app/src/main/java/com/noahvogt/miniprojekt/DataBase/EmailRoomDatabase.java
  5. 1 1
      app/src/main/java/com/noahvogt/miniprojekt/DataBase/Message.java
  6. 2 16
      app/src/main/java/com/noahvogt/miniprojekt/DataBase/MessageDao.java
  7. 5 15
      app/src/main/java/com/noahvogt/miniprojekt/MainActivity.java
  8. 2 1
      app/src/main/java/com/noahvogt/miniprojekt/SettingsActivity.java
  9. 17 0
      app/src/main/java/com/noahvogt/miniprojekt/SettingsFragment.java
  10. 2 4
      app/src/main/java/com/noahvogt/miniprojekt/data/CustomAdapter.java
  11. 38 5
      app/src/main/java/com/noahvogt/miniprojekt/data/EmailViewHolder.java
  12. 3 3
      app/src/main/java/com/noahvogt/miniprojekt/data/EmailViewModel.java
  13. 1 1
      app/src/main/java/com/noahvogt/miniprojekt/data/MailFunctions.java
  14. 23 6
      app/src/main/java/com/noahvogt/miniprojekt/messageCreateFragment.java
  15. 3 3
      app/src/main/java/com/noahvogt/miniprojekt/ui/archive/ArchiveFragment.java
  16. 4 28
      app/src/main/java/com/noahvogt/miniprojekt/ui/gallery/GalleryFragment.java
  17. 3 9
      app/src/main/java/com/noahvogt/miniprojekt/ui/home/HomeFragment.java
  18. 0 38
      app/src/main/java/com/noahvogt/miniprojekt/ui/home/SettingsFragment.java
  19. 7 8
      app/src/main/java/com/noahvogt/miniprojekt/ui/show/MessageShowFragment.java
  20. 7 3
      app/src/main/java/com/noahvogt/miniprojekt/ui/slideshow/DraftFragment.java
  21. 3 3
      app/src/main/java/com/noahvogt/miniprojekt/ui/spam/SpamFragment.java
  22. 8 0
      app/src/main/res/drawable/textview_border.xml
  23. 1 1
      app/src/main/res/layout/activity_settings.xml
  24. 7 7
      app/src/main/res/layout/fragment_home.xml
  25. 45 56
      app/src/main/res/layout/message_show_fragment.xml

+ 88 - 0
app/schemas/com.noahvogt.miniprojekt.DataBase.EmailRoomDatabase/1.json

@@ -0,0 +1,88 @@
+{
+  "formatVersion": 1,
+  "database": {
+    "version": 1,
+    "identityHash": "217605d4a5ec0067e9003ad5b099a303",
+    "entities": [
+      {
+        "tableName": "message_table",
+        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `to` TEXT NOT NULL, `cc` TEXT, `bcc` TEXT, `fromEmail` TEXT NOT NULL, `date` TEXT NOT NULL, `subject` TEXT, `textContent` TEXT, `folder` TEXT NOT NULL, `seen` INTEGER NOT NULL)",
+        "fields": [
+          {
+            "fieldPath": "id",
+            "columnName": "id",
+            "affinity": "INTEGER",
+            "notNull": true
+          },
+          {
+            "fieldPath": "mTo",
+            "columnName": "to",
+            "affinity": "TEXT",
+            "notNull": true
+          },
+          {
+            "fieldPath": "mCc",
+            "columnName": "cc",
+            "affinity": "TEXT",
+            "notNull": false
+          },
+          {
+            "fieldPath": "mBcc",
+            "columnName": "bcc",
+            "affinity": "TEXT",
+            "notNull": false
+          },
+          {
+            "fieldPath": "mFrom",
+            "columnName": "fromEmail",
+            "affinity": "TEXT",
+            "notNull": true
+          },
+          {
+            "fieldPath": "mDate",
+            "columnName": "date",
+            "affinity": "TEXT",
+            "notNull": true
+          },
+          {
+            "fieldPath": "mSubject",
+            "columnName": "subject",
+            "affinity": "TEXT",
+            "notNull": false
+          },
+          {
+            "fieldPath": "mTextContent",
+            "columnName": "textContent",
+            "affinity": "TEXT",
+            "notNull": false
+          },
+          {
+            "fieldPath": "mFolder",
+            "columnName": "folder",
+            "affinity": "TEXT",
+            "notNull": true
+          },
+          {
+            "fieldPath": "mSeen",
+            "columnName": "seen",
+            "affinity": "INTEGER",
+            "notNull": true
+          }
+        ],
+        "primaryKey": {
+          "columnNames": [
+            "id"
+          ],
+          "autoGenerate": true
+        },
+        "indices": [],
+        "foreignKeys": []
+      }
+    ],
+    "views": [],
+    "setupQueries": [
+      "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
+      "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '217605d4a5ec0067e9003ad5b099a303')"
+    ]
+  }
+}

+ 1 - 1
app/src/main/AndroidManifest.xml

@@ -21,7 +21,7 @@
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
         </activity>
-        <activity android:name=".ui.home.SettingsActivity"/>
+        <activity android:name=".SettingsActivity"/>
     </application>
 
 </manifest>

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

@@ -1,7 +1,6 @@
-package com.noahvogt.miniprojekt.ui.DataBase;
+package com.noahvogt.miniprojekt.DataBase;
 
 import android.app.Application;
-import android.os.AsyncTask;
 
 import androidx.lifecycle.LiveData;
 

+ 3 - 5
app/src/main/java/com/noahvogt/miniprojekt/ui/DataBase/EmailRoomDatabase.java → app/src/main/java/com/noahvogt/miniprojekt/DataBase/EmailRoomDatabase.java

@@ -1,8 +1,6 @@
-package com.noahvogt.miniprojekt.ui.DataBase;
+package com.noahvogt.miniprojekt.DataBase;
 
 import android.content.Context;
-import android.content.Intent;
-import android.icu.util.Measure;
 
 import androidx.annotation.NonNull;
 import androidx.room.Database;
@@ -69,9 +67,9 @@ public abstract class EmailRoomDatabase extends RoomDatabase{
 
 
                 Message word = new Message("Noah", null , null,
-                        "Samuel", "31.9.21", "inboxTest", "I Try my best", "Inbox",
+                        "Samuel", "31.09.21", "inboxTest", "I Try my best", "Inbox",
                         true);
-               dao.insert(word);
+                dao.insert(word);
 
                word = new Message("Noah", null, null,
                        "arldemeier", "bobo", "sentTest", "i could cry", "Sent",

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

@@ -1,4 +1,4 @@
-package com.noahvogt.miniprojekt.ui.DataBase;
+package com.noahvogt.miniprojekt.DataBase;
 
 import androidx.annotation.NonNull;
 import androidx.room.ColumnInfo;

+ 2 - 16
app/src/main/java/com/noahvogt/miniprojekt/ui/DataBase/MessageDao.java → app/src/main/java/com/noahvogt/miniprojekt/DataBase/MessageDao.java

@@ -1,4 +1,4 @@
-package com.noahvogt.miniprojekt.ui.DataBase;
+package com.noahvogt.miniprojekt.DataBase;
 
 import androidx.lifecycle.LiveData;
 import androidx.room.Dao;
@@ -13,21 +13,7 @@ import java.util.List;
 @Dao
 public interface MessageDao {
 
-    /*
-
-    WordDao is an interface; DAOs must either be interfaces or abstract classes.
-    The @Dao annotation identifies it as a DAO class for Room.
-    void insert(Word word); Declares a method to insert one word:
-    The @Insert annotation is a special DAO method annotation where you don't have to provide any SQL! (There are also @Delete and @Update annotations for deleting and updating rows, but you are not using them in this app.)
-    onConflict = OnConflictStrategy.IGNORE: The selected on conflict strategy ignores a new word if it's exactly the same as one already in the list. To know more about the available conflict strategies, check out the documentation.
-    deleteAll(): declares a method to delete all the words.
-    There is no convenience annotation for deleting multiple entities, so it's annotated with the generic @Query.
-    @Query("DELETE FROM word_table"): @Query requires that you provide a SQL query as a string parameter to the annotation.
-    List<Word> getAlphabetizedWords(): A method to get all the words and have it return a List of Words.
-    @Query("SELECT * FROM word_table ORDER BY word ASC"): Returns a list of words sorted in ascending order.
-
-     */
-
+    // TODO: updating messages, search funktion
     // allowing the insert of the same word multiple times by passing a
     // conflict resolution strategy
     @Insert(onConflict = OnConflictStrategy.IGNORE)

+ 5 - 15
app/src/main/java/com/noahvogt/miniprojekt/MainActivity.java

@@ -18,8 +18,7 @@ import androidx.fragment.app.DialogFragment;
 
 
 import com.google.android.material.floatingactionbutton.FloatingActionButton;
-import com.noahvogt.miniprojekt.ui.DataBase.Message;
-import com.noahvogt.miniprojekt.ui.home.CustomAdapter;
+import com.noahvogt.miniprojekt.DataBase.Message;
 
 import androidx.fragment.app.Fragment;
 import androidx.fragment.app.FragmentManager;
@@ -38,9 +37,10 @@ import androidx.navigation.ui.NavigationUI;
 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.data.CustomAdapter;
+import com.noahvogt.miniprojekt.data.EmailViewModel;
+import com.noahvogt.miniprojekt.data.MailFunctions;
 import com.noahvogt.miniprojekt.ui.show.MessageShowFragment;
-import com.noahvogt.miniprojekt.ui.slideshow.EmailViewModel;
 
 import java.text.SimpleDateFormat;
 import java.util.Date;
@@ -192,17 +192,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
                         messageCreateFragment.replyIntent.getStringExtra(messageCreateFragment.EXTRA_MESSAGE),
                         "Draft",false);
                 mEmailViewModel.insert(word);
-          //  } else {
-                Toast.makeText(
-                        getApplicationContext(),
-                        R.string.empty_not_saved,
-                        Toast.LENGTH_LONG).show();
-
-            Toast.makeText(
-                    getApplicationContext(),
-                    messageCreateFragment.replyIntent.getStringExtra(messageCreateFragment.EXTRA_FROM),
-                    Toast.LENGTH_LONG).show();
-          //  }
+
 
 
         }

+ 2 - 1
app/src/main/java/com/noahvogt/miniprojekt/ui/home/SettingsActivity.java → app/src/main/java/com/noahvogt/miniprojekt/SettingsActivity.java

@@ -1,10 +1,11 @@
-package com.noahvogt.miniprojekt.ui.home;
+package com.noahvogt.miniprojekt;
 
 
 import android.os.Bundle;
 import androidx.appcompat.app.AppCompatActivity;
 
 import com.noahvogt.miniprojekt.R;
+import com.noahvogt.miniprojekt.SettingsFragment;
 import com.noahvogt.miniprojekt.ui.show.MessageShowFragment;
 
 import java.util.Objects;

+ 17 - 0
app/src/main/java/com/noahvogt/miniprojekt/SettingsFragment.java

@@ -0,0 +1,17 @@
+package com.noahvogt.miniprojekt;
+
+import android.os.Bundle;
+
+import androidx.preference.PreferenceFragmentCompat;
+
+public class SettingsFragment extends PreferenceFragmentCompat {
+
+    public static SettingsFragment newInstance() {
+        return new SettingsFragment();
+    }
+
+    @Override
+    public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
+        addPreferencesFromResource(R.xml.settings);
+    }
+}

+ 2 - 4
app/src/main/java/com/noahvogt/miniprojekt/ui/home/CustomAdapter.java → app/src/main/java/com/noahvogt/miniprojekt/data/CustomAdapter.java

@@ -1,4 +1,4 @@
- package com.noahvogt.miniprojekt.ui.home;
+ package com.noahvogt.miniprojekt.data;
 
 
 import android.os.Build;
@@ -10,9 +10,7 @@ import androidx.annotation.RequiresApi;
 import androidx.recyclerview.widget.DiffUtil;
 import androidx.recyclerview.widget.ListAdapter;
 
-import com.noahvogt.miniprojekt.ui.DataBase.Message;
-import com.noahvogt.miniprojekt.ui.slideshow.EmailViewHolder;
-import com.noahvogt.miniprojekt.ui.slideshow.EmailViewModel;
+import com.noahvogt.miniprojekt.DataBase.Message;
 
 
 import java.util.List;

+ 38 - 5
app/src/main/java/com/noahvogt/miniprojekt/ui/slideshow/EmailViewHolder.java → app/src/main/java/com/noahvogt/miniprojekt/data/EmailViewHolder.java

@@ -1,16 +1,19 @@
-package com.noahvogt.miniprojekt.ui.slideshow;
+package com.noahvogt.miniprojekt.data;
 
+import android.annotation.SuppressLint;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 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.DataBase.Message;
 import com.noahvogt.miniprojekt.R;
 
 import androidx.recyclerview.widget.RecyclerView;
 
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.List;
 
 /* adds the content to the View of RecyclerView*/
@@ -33,13 +36,31 @@ public class EmailViewHolder extends RecyclerView.ViewHolder {
             @Override
             public void onClick(View v) {
                 selectedMessage.selectedMessage(messageList.get(getBindingAdapterPosition()), null );
-
-
             }
         });
     }
 
     public void bind(String from, String subject, String date, String message) {
+        System.out.println("length of from " + from.length());
+        System.out.println("length of message " + message.length());
+
+
+        if (subject.length() > 30){
+            subject = subject.substring(0,26) + "...";
+        }
+        if (from.length() > 12) {
+            from = from.substring(0,12) + "...";
+        }
+        if (message.length() > 30){
+            message = message.substring(0,30) + "...";
+        }
+        if (date.length() > 9){
+            date = "INVALID";
+        }
+        if (!isDate(date)){
+            date = "INVALID";
+        }
+
         fromItemView.setText(from);
         subjectItemView.setText(subject);
         dateItemView.setText(date);
@@ -54,6 +75,18 @@ public class EmailViewHolder extends RecyclerView.ViewHolder {
         return new EmailViewHolder(view, selectedMessage, messageList);
     }
 
+    public static boolean isDate(String date){
+        SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yy");
+        dateFormat.setLenient(false);
+        try {
+            dateFormat.parse(date.trim());
+        } catch (ParseException e){
+            return false;
+        }
+
+        return true;
+    }
+
 
 
     }

+ 3 - 3
app/src/main/java/com/noahvogt/miniprojekt/ui/slideshow/EmailViewModel.java → app/src/main/java/com/noahvogt/miniprojekt/data/EmailViewModel.java

@@ -1,12 +1,12 @@
-package com.noahvogt.miniprojekt.ui.slideshow;
+package com.noahvogt.miniprojekt.data;
 
 import android.app.Application;
 
 import androidx.lifecycle.LiveData;
 import androidx.lifecycle.AndroidViewModel;
 
-import com.noahvogt.miniprojekt.ui.DataBase.EmailRepository;
-import com.noahvogt.miniprojekt.ui.DataBase.Message;
+import com.noahvogt.miniprojekt.DataBase.EmailRepository;
+import com.noahvogt.miniprojekt.DataBase.Message;
 
 import java.util.List;
 

+ 1 - 1
app/src/main/java/com/noahvogt/miniprojekt/MailFunctions.java → app/src/main/java/com/noahvogt/miniprojekt/data/MailFunctions.java

@@ -1,4 +1,4 @@
-package com.noahvogt.miniprojekt;
+package com.noahvogt.miniprojekt.data;
 
 import android.util.Patterns;
 import android.widget.EditText;

+ 23 - 6
app/src/main/java/com/noahvogt/miniprojekt/messageCreateFragment.java

@@ -21,6 +21,11 @@ import androidx.annotation.Nullable;
 import androidx.appcompat.app.AlertDialog;
 import androidx.fragment.app.DialogFragment;
 
+import com.noahvogt.miniprojekt.DataBase.Message;
+import com.noahvogt.miniprojekt.data.EmailViewHolder;
+import com.noahvogt.miniprojekt.data.EmailViewModel;
+import com.noahvogt.miniprojekt.data.MailFunctions;
+
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
@@ -39,6 +44,9 @@ public class messageCreateFragment extends DialogFragment implements PopupMenu.O
     public EditText ccObject;
     public EditText bccObject;
 
+    Message mMessage = null;
+    public EmailViewModel mEmailViewModel = null;
+
     public static final int RESULT_CANCELED = 0;
     public static final int RESULT_OK = -1;
 
@@ -49,6 +57,12 @@ public class messageCreateFragment extends DialogFragment implements PopupMenu.O
         return new messageCreateFragment();
     }
 
+    public messageCreateFragment getMessage(Message message, EmailViewModel emailViewModel, messageCreateFragment messageCreateFragment){
+        this.mEmailViewModel = emailViewModel;
+        this.mMessage = message;
+        return messageCreateFragment;
+    }
+
     private AlertDialog dialog;
     SharedPreferences preferences;
 
@@ -91,10 +105,15 @@ public class messageCreateFragment extends DialogFragment implements PopupMenu.O
         sendingAddressObject.setText(loginEmail);
 
         /* 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();
+        System.out.println("mMessage is " + mMessage.toString() + "\n mEmailViewModel is " + mEmailViewModel.toString() );
+        if (mMessage != null && mEmailViewModel != null) {
+            sendingAddressObject.setText(mMessage.getFrom());
+            receivingAddressObject.setText(mMessage.getTo());
+            subjectObject.setText(mMessage.getSubject());
+            messageBodyObject.setText(mMessage.getTextContent());
+            bccObject.setText(mMessage.getBcc());
+            ccObject.setText(mMessage.getCc());
+        }
 
         /* TODO: add cc + bcc functionality */
 
@@ -146,8 +165,6 @@ public class messageCreateFragment extends DialogFragment implements PopupMenu.O
 
                                     activity.finish();
 
-                                    Toast.makeText(getContext(), "messageCreateFragmentReadIn", Toast.LENGTH_SHORT).show();
-                                    Toast.makeText(getContext(), replyIntent.getStringExtra(EXTRA_FROM), Toast.LENGTH_SHORT).show();
 
                                     Intent intent = new Intent(getContext(), NewDraftMessageActivity.class);
                                     startActivityForResult(intent, MainActivity.NEW_WORD_ACTIVITY_REQUEST_CODE);

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

@@ -18,10 +18,10 @@ 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.DataBase.Message;
+import com.noahvogt.miniprojekt.data.CustomAdapter;
 import com.noahvogt.miniprojekt.ui.show.MessageShowFragment;
-import com.noahvogt.miniprojekt.ui.slideshow.EmailViewModel;
+import com.noahvogt.miniprojekt.data.EmailViewModel;
 
 public class ArchiveFragment extends Fragment implements CustomAdapter.SelectedMessage{
 

+ 4 - 28
app/src/main/java/com/noahvogt/miniprojekt/ui/gallery/GalleryFragment.java

@@ -18,13 +18,12 @@ import androidx.lifecycle.ViewModelProvider;
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 
-import com.noahvogt.miniprojekt.MailFunctions;
 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.DataBase.Message;
+import com.noahvogt.miniprojekt.data.CustomAdapter;
 import com.noahvogt.miniprojekt.ui.show.MessageShowFragment;
-import com.noahvogt.miniprojekt.ui.slideshow.EmailViewModel;
+import com.noahvogt.miniprojekt.data.EmailViewModel;
 
 import org.jetbrains.annotations.NotNull;
 
@@ -52,29 +51,6 @@ public class GalleryFragment extends Fragment implements CustomAdapter.SelectedM
 
         recyclerView = MainActivity.recyclerView.findViewById(R.id.recyclerView);
 
-
-        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);
 
 
@@ -95,9 +71,9 @@ public class GalleryFragment extends Fragment implements CustomAdapter.SelectedM
     }
 
 
+    /*starts Dialog of clicked message*/
     @Override
     public void selectedMessage(Message messages, EmailViewModel emailViewModel) {
-
         AppCompatActivity activity = (AppCompatActivity) getContext();
         DialogFragment dialog = MessageShowFragment.newInstance(messages, mEmailViewModel);
         dialog.show(activity.getSupportFragmentManager(), "tag");

+ 3 - 9
app/src/main/java/com/noahvogt/miniprojekt/ui/home/HomeFragment.java

@@ -17,11 +17,12 @@ import androidx.lifecycle.ViewModelProvider;
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 
+import com.noahvogt.miniprojekt.data.CustomAdapter;
 import com.noahvogt.miniprojekt.MainActivity;
 import com.noahvogt.miniprojekt.R;
-import com.noahvogt.miniprojekt.ui.DataBase.Message;
+import com.noahvogt.miniprojekt.DataBase.Message;
 import com.noahvogt.miniprojekt.ui.show.MessageShowFragment;
-import com.noahvogt.miniprojekt.ui.slideshow.EmailViewModel;
+import com.noahvogt.miniprojekt.data.EmailViewModel;
 
 public class HomeFragment extends Fragment implements CustomAdapter.SelectedMessage{
 
@@ -41,7 +42,6 @@ public class HomeFragment extends Fragment implements CustomAdapter.SelectedMess
         /* Attach the adapter to the recyclerview to populate items */
         recyclerView.setAdapter(adapter);
         recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
-        //mEmailViewModel = new ViewModelProvider(this).get(EmailViewModel.class);
 
         mEmailViewModel = new ViewModelProvider(this).get(EmailViewModel.class);
         mEmailViewModel.getInboxMessage().observe(getViewLifecycleOwner(), messages -> {
@@ -58,12 +58,6 @@ public class HomeFragment extends Fragment implements CustomAdapter.SelectedMess
                 new ViewModelProvider(this).get(HomeViewModel.class);
         View root = inflater.inflate(R.layout.fragment_home, container, false);
         final TextView textView = root.findViewById(R.id.textView);
-        homeViewModel.getText().observe(getViewLifecycleOwner(), new Observer<String>() {
-            @Override
-            public void onChanged(@Nullable String s) {
-                textView.setText(s);
-            }
-        });
         return root;
     }
 

+ 0 - 38
app/src/main/java/com/noahvogt/miniprojekt/ui/home/SettingsFragment.java

@@ -1,38 +0,0 @@
-package com.noahvogt.miniprojekt.ui.home;
-
-import android.os.Bundle;
-
-import android.content.DialogInterface;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.EditText;
-import android.widget.ImageButton;
-import android.widget.PopupMenu;
-import android.widget.Toast;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.appcompat.app.AlertDialog;
-import androidx.fragment.app.DialogFragment;
-
-import androidx.fragment.app.Fragment;
-import androidx.appcompat.app.AlertDialog;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceFragmentCompat;
-
-import com.noahvogt.miniprojekt.R;
-
-public class SettingsFragment extends PreferenceFragmentCompat {
-
-    public static SettingsFragment newInstance() {
-        return new SettingsFragment();
-    }
-
-    @Override
-    public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
-        addPreferencesFromResource(R.xml.settings);
-    }
-}

+ 7 - 8
app/src/main/java/com/noahvogt/miniprojekt/ui/show/MessageShowFragment.java

@@ -6,7 +6,6 @@ import android.view.LayoutInflater;
 import android.view.MenuItem;
 import android.view.View;
 import android.view.ViewGroup;
-import android.widget.EditText;
 import android.widget.ImageButton;
 import android.widget.PopupMenu;
 import android.widget.TextView;
@@ -19,15 +18,15 @@ 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.slideshow.EmailViewModel;
+import com.noahvogt.miniprojekt.DataBase.Message;
+import com.noahvogt.miniprojekt.data.EmailViewModel;
 
 
 public class MessageShowFragment extends DialogFragment implements PopupMenu.OnMenuItemClickListener {
 
 
-    public EditText showTo;
-    public EditText showFrom;
+    public TextView showTo;
+    public TextView showFrom;
     public TextView showSubject;
     public TextView showMessage;
 
@@ -73,12 +72,12 @@ public class MessageShowFragment extends DialogFragment implements PopupMenu.OnM
         ImageButton dotButton = view.findViewById(R.id.show_message_dots_button);
         ImageButton attachButton = view.findViewById(R.id.show_message_attach_button);
 
-        showTo = (EditText) view.findViewById(R.id.show_To);
-        showFrom = (EditText) view.findViewById(R.id.show_From);
+        showTo = (TextView) view.findViewById(R.id.show_To);
+        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());
+        showTo.setText(mCurrent.getTo());
         showFrom.setText(mCurrent.getFrom());
         showSubject.setText(mCurrent.getSubject());
         showMessage.setText(mCurrent.getTextContent());

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

@@ -16,10 +16,12 @@ import androidx.lifecycle.ViewModelProvider;
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 
+import com.noahvogt.miniprojekt.data.EmailViewModel;
 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.DataBase.Message;
+import com.noahvogt.miniprojekt.data.CustomAdapter;
+import com.noahvogt.miniprojekt.messageCreateFragment;
 import com.noahvogt.miniprojekt.ui.show.MessageShowFragment;
 
 public class  DraftFragment extends Fragment implements CustomAdapter.SelectedMessage{
@@ -68,9 +70,11 @@ public class  DraftFragment extends Fragment implements CustomAdapter.SelectedMe
 
     @Override
     public void selectedMessage(Message messages, EmailViewModel emailViewModel) {
+        messageCreateFragment messageCreateFragment = new messageCreateFragment();
 
+        //TODO: make this Fragment editable
         AppCompatActivity activity = (AppCompatActivity) getContext();
-        DialogFragment dialog = MessageShowFragment.newInstance(messages, mEmailViewModel);
+        DialogFragment dialog = messageCreateFragment.getMessage(messages, emailViewModel, messageCreateFragment);
         dialog.show(activity.getSupportFragmentManager(), "tag");
     }
 }

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

@@ -18,10 +18,10 @@ 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.DataBase.Message;
+import com.noahvogt.miniprojekt.data.CustomAdapter;
 import com.noahvogt.miniprojekt.ui.show.MessageShowFragment;
-import com.noahvogt.miniprojekt.ui.slideshow.EmailViewModel;
+import com.noahvogt.miniprojekt.data.EmailViewModel;
 
 public class SpamFragment extends Fragment implements CustomAdapter.SelectedMessage{
 

+ 8 - 0
app/src/main/res/drawable/textview_border.xml

@@ -0,0 +1,8 @@
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle" >
+
+    <stroke
+        android:width="2dp"
+        android:color="#EB663CBA" />
+
+</shape>

+ 1 - 1
app/src/main/res/layout/activity_settings.xml

@@ -3,7 +3,7 @@
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    tools:context="ui.home.SettingsActivity">
+    tools:context=".SettingsActivity">
 
     <FrameLayout
         android:id="@+id/idFrameLayout"

+ 7 - 7
app/src/main/res/layout/fragment_home.xml

@@ -14,12 +14,12 @@
         android:layout_column="0"
         android:layout_row="0"
         android:layout_height="wrap_content"
-        android:layout_width="wrap_content"
+        android:layout_width="250dp"
         android:textSize="25dp"/>
 
     <TextView
         android:id="@+id/message"
-        android:layout_width="wrap_content"
+        android:layout_width="250dp"
         android:layout_height="match_parent"
         android:layout_row="2"
         android:layout_column="0"
@@ -29,7 +29,7 @@
 
     <TextView
         android:id="@+id/subject"
-        android:layout_width="wrap_content"
+        android:layout_width="250dp"
         android:layout_height="match_parent"
         android:layout_row="1"
         android:layout_column="0"
@@ -40,12 +40,12 @@
 
     <TextView
         android:id="@+id/date"
-        android:textSize="20dp"
-        android:layout_width="wrap_content"
+        android:layout_width="81dp"
         android:layout_height="wrap_content"
         android:layout_row="0"
-        android:layout_column="3"
-        android:gravity="start" />
+        android:layout_column="2"
+        android:gravity="end"
+        android:textSize="20dp" />
 
 
 

+ 45 - 56
app/src/main/res/layout/message_show_fragment.xml

@@ -36,8 +36,8 @@
                 android:layout_width="56dp"
                 android:layout_height="match_parent"
 
-                android:layout_marginLeft="360dp"
-                android:layout_marginStart="360dp"
+                android:layout_marginStart="320dp"
+                android:layout_marginLeft="320dp"
                 android:background="?attr/selectableItemBackgroundBorderless"
                 android:padding="8dp"
                 android:src="@mipmap/ic_more_vert_dots_purple" />
@@ -48,15 +48,13 @@
                 android:layout_height="match_parent"
 
 
+                android:layout_marginStart="-114dp"
+                android:layout_marginLeft="-114dp"
                 android:layout_toEndOf="@id/show_message_dots_button"
-                android:layout_marginLeft="-110dp"
+                android:layout_toRightOf="@id/show_message_dots_button"
                 android:background="?attr/selectableItemBackgroundBorderless"
                 android:padding="8dp"
-                android:src="@mipmap/ic_attach_purple"
-                android:layout_toRightOf="@id/show_message_dots_button"
-                android:layout_marginStart="-110dp" />
-
-
+                android:src="@mipmap/ic_attach_purple" />
 
 
         </RelativeLayout>
@@ -73,11 +71,10 @@
             android:orientation="vertical"
             android:gravity="top">
 
-            <com.google.android.material.textfield.TextInputLayout
-                style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
-                android:id="@+id/create_message_sending_address_layout"
+            <LinearLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
+                android:background="@drawable/textview_border"
 
                 android:layout_marginStart="12dp"
                 android:layout_marginLeft="12dp"
@@ -86,29 +83,25 @@
                 android:layout_marginRight="12dp"
                 android:layout_marginBottom="12dp">
 
-                <com.google.android.material.textfield.TextInputEditText
-                style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
-                android:id="@+id/show_From"
-                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" />
-            </com.google.android.material.textfield.TextInputLayout>
+                <TextView
+                    android:id="@+id/show_From"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:textAppearance="@style/TextAppearance.AppCompat.Body1"
 
-            <com.google.android.material.textfield.TextInputLayout
-                style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
-                android:id="@+id/show_message_receiving_address_layout"
+                    android:layout_marginStart="12dp"
+                    android:layout_marginLeft="12dp"
+                    android:layout_marginTop="12dp"
+                    android:layout_marginEnd="12dp"
+                    android:layout_marginRight="12dp"
+                    android:layout_marginBottom="12dp"/>
+            </LinearLayout>
+
+            <LinearLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-
-                android:clickable="false"
-                android:textIsSelectable="false"
-                android:freezesText="true"
+                android:background="@drawable/textview_border"
 
                 android:layout_marginStart="12dp"
                 android:layout_marginLeft="12dp"
@@ -117,28 +110,23 @@
                 android:layout_marginRight="12dp"
                 android:layout_marginBottom="12dp">
 
-                <com.google.android.material.textfield.TextInputEditText
-                    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+                <TextView
                     android:id="@+id/show_To"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:layout_marginStart="12dp"
-
-                    android:clickable="false"
-                    android:textIsSelectable="false"
-                    android:freezesText="true"
+                    android:textAppearance="@style/TextAppearance.AppCompat.Body1"
 
                     android:layout_marginLeft="12dp"
                     android:layout_marginTop="12dp"
                     android:layout_marginEnd="12dp"
                     android:layout_marginRight="12dp"
                     android:layout_marginBottom="12dp" />
-            </com.google.android.material.textfield.TextInputLayout>
+            </LinearLayout>
 
 
-            <com.google.android.material.textfield.TextInputLayout
-                style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
-                android:id="@+id/show_message_subject_layout"
+            <LinearLayout
+                android:background="@drawable/textview_border"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
 
@@ -147,15 +135,14 @@
                 android:layout_marginTop="12dp"
                 android:layout_marginEnd="12dp"
                 android:layout_marginRight="12dp"
-                android:layout_marginBottom="12dp"
+                android:layout_marginBottom="12dp">
 
-                app:layout_constraintTop_toBottomOf="@+id/show_message_sending_address_layout"
-                tools:layout_editor_absoluteX="1dp">
 
-            <TextView
+                <TextView
                     android:id="@+id/show_Subject"
                     android:layout_width="match_parent"
                     android:layout_height="match_parent"
+                    android:textAppearance="@style/TextAppearance.AppCompat.Body1"
 
                     android:layout_marginStart="12dp"
                     android:layout_marginLeft="12dp"
@@ -163,11 +150,10 @@
                     android:layout_marginEnd="12dp"
                     android:layout_marginRight="12dp"
                     android:layout_marginBottom="12dp"/>
-            </com.google.android.material.textfield.TextInputLayout>
+            </LinearLayout>
 
-            <com.google.android.material.textfield.TextInputLayout
-                style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
-                android:id="@+id/show_message_body_layout"
+            <LinearLayout
+                android:background="@drawable/textview_border"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
 
@@ -176,19 +162,22 @@
                 android:layout_marginTop="12dp"
                 android:layout_marginEnd="12dp"
                 android:layout_marginRight="12dp"
-                android:layout_marginBottom="12dp"
-
-                app:layout_constraintTop_toBottomOf="@+id/show_message_sending_address_layout"
-                tools:layout_editor_absoluteX="1dp">
+                android:layout_marginBottom="12dp">
 
                 <TextView
                     android:id="@+id/show_Message"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:minHeight="160dp"
-                    android:textAlignment="viewStart"
-                    android:gravity="start" />
-            </com.google.android.material.textfield.TextInputLayout>
+                    android:minHeight="200dp"
+                    android:textAppearance="@style/TextAppearance.AppCompat.Body1"
+
+                    android:layout_marginStart="12dp"
+                    android:layout_marginLeft="12dp"
+                    android:layout_marginTop="12dp"
+                    android:layout_marginEnd="12dp"
+                    android:layout_marginRight="12dp"
+                    android:layout_marginBottom="12dp" />
+            </LinearLayout>
 
         </LinearLayout>