Browse Source

emailwriter works know corectly

Simon Hammer 3 năm trước cách đây
mục cha
commit
cdf8787577

+ 17 - 50
app/src/main/java/com/noahvogt/miniprojekt/MainActivity.java

@@ -117,16 +117,15 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
         NavigationUI.setupWithNavController(navigationView, navController);
 
 
-        // Lookup the recyclerview in activity layout
+        /* Lookup the recyclerview in activity layout */
         recyclerView = findViewById(R.id.recyclerView);
 
 
         /* Attach the adapter to the recyclerview to populate items */
         recyclerView.setAdapter(adapter);
         recyclerView.setLayoutManager(new LinearLayoutManager(this));
-        //mEmailViewModel = new ViewModelProvider(this).get(EmailViewModel.class);
-
 
+        /* 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*/
@@ -134,83 +133,51 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
         });
 
 
-         /* if (GalleryFragment.galleryViewOn) {
-               showToast("gallery True");
-                mEmailViewModel = new ViewModelProvider(this).get(EmailViewModel.class);
-                mEmailViewModel.getDraftMessage().observe(this, messages -> {
-                    /* Update the cached copy of the messages in the adapter*/
-            /*       adapter.submitList(messages);
-                });
-                //mEmailViewModel.deleteNewMessage();
-            }
-           else if (HomeFragment.homeViewOn){
-               showToast("home True");
-               mEmailViewModel = new ViewModelProvider(this).get(EmailViewModel.class);
-               mEmailViewModel.getDraftMessage().observe(this, messages -> {
-                           /* Update the cached copy of the messages in the adapter*/
-            /*               adapter.submitList(messages);
-               });
-           }
-           else if (DraftFragment.DraftViewOn){
-               showToast("draft True");
-               mEmailViewModel = new ViewModelProvider(this).get(EmailViewModel.class);
-               mEmailViewModel.getDraftMessage().observe(this, messages -> {
-                   /* Update the cached copy of the messages in the adapter*/
-             /*      adapter.submitList(messages);
-               });
-           }
-           else {
-               //mEmailViewModel.deleteNewMessage();
-           }
-
-              */
-
-
-
         /* Start email Writer*/
         FloatingActionButton message_create_button = findViewById(R.id.messageButton);
         message_create_button.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
+
                 DialogFragment dialog = messageCreateFragment.newInstance();
                 dialog.show(getSupportFragmentManager(), "tag");
 
-                Intent intent = new Intent(MainActivity.this, NewDraftMessageActivity.class);
-                startActivityForResult(intent, NEW_WORD_ACTIVITY_REQUEST_CODE);
             }
         });
     }
 
 
-
-
-
-        /* gets the data from the Email writer and adds it to the Database I think*/
+        /* gets the data from the Email writer and adds it to the Database */
         public void onActivityResult(int requestCode, int resultCode, Intent data) {
-            super.onActivityResult(requestCode, resultCode, data);
+            super.onActivityResult(requestCode, resultCode, messageCreateFragment.replyIntent);
 
             /* Creates class for the Date when Email is written */
             Date dNow = new Date();
             SimpleDateFormat ft =
                     new SimpleDateFormat("dd.MM.yy");
 
-            if (requestCode == NEW_WORD_ACTIVITY_REQUEST_CODE && resultCode == RESULT_OK) {
+         //   if (requestCode == NEW_WORD_ACTIVITY_REQUEST_CODE && resultCode == RESULT_OK) {
                 Message word = new Message(
-                        data.getStringExtra(NewDraftMessageActivity.EXTRA_TO),
+                        messageCreateFragment.replyIntent.getStringExtra(messageCreateFragment.EXTRA_TO),
                         null,
                         null,
-                        data.getStringExtra(NewDraftMessageActivity.EXTRA_FROM),
+                        messageCreateFragment.replyIntent.getStringExtra(messageCreateFragment.EXTRA_FROM),
                         ft.format(dNow),
-                        data.getStringExtra(NewDraftMessageActivity.EXTRA_SUBJECT),
-                        data.getStringExtra(NewDraftMessageActivity.EXTRA_MESSAGE),
+                        messageCreateFragment.replyIntent.getStringExtra(messageCreateFragment.EXTRA_SUBJECT),
+                        messageCreateFragment.replyIntent.getStringExtra(messageCreateFragment.EXTRA_MESSAGE),
                         "Draft",false);
                 mEmailViewModel.insert(word);
-            } else {
+          //  } 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();
+          //  }
 
 
         }

+ 21 - 36
app/src/main/java/com/noahvogt/miniprojekt/NewDraftMessageActivity.java

@@ -6,49 +6,34 @@ import androidx.appcompat.app.AppCompatActivity;
 import android.content.Intent;
 import android.os.Bundle;
 import android.text.TextUtils;
+import android.view.View;
 import android.widget.EditText;
 import android.widget.ImageButton;
+import android.widget.Toast;
 
 public class NewDraftMessageActivity extends AppCompatActivity {
 
-    public static final String EXTRA_TO = "com.example.android.namelistsql.NAME";
-    public static final String EXTRA_FROM = "com.example.android.namelistsql.FROM";
-    public static final String EXTRA_SUBJECT = "com.example.android.namelistsql.SUBJECT";
-    public static final String EXTRA_MESSAGE = "com.example.android.namelistsql.MESSAGE";
-    public static final String EXTRA_DATE = "com.example.android.namelistsql.DATE";
 
-    private EditText sendingAddressObject;
-    private EditText receivingAddressObject;
-    private EditText subjectObject;
-    private EditText messageBodyObject;
 
-    @Override
+
+
+
+   @Override
     public void onCreate(Bundle savedInstanceState){
         super.onCreate(savedInstanceState);
-        setContentView(R.layout.message_create_fragment);
-
-        sendingAddressObject = findViewById(R.id.create_message_sending_address_text);
-        receivingAddressObject = findViewById(R.id.create_message_receiving_address_text);
-        subjectObject = findViewById(R.id.create_message_subject_text);
-        messageBodyObject = findViewById(R.id.create_message_body_text);
-
-        final ImageButton button = findViewById(R.id.create_message_close_button);
-        button.setOnClickListener(view -> {
-            Intent replyIntent = new Intent();
-            if (TextUtils.isEmpty(sendingAddressObject.getText())) {
-                setResult(RESULT_CANCELED, replyIntent);
-            } else {
-                String from = sendingAddressObject.getText().toString();
-                String to = receivingAddressObject.getText().toString();
-                String subject = subjectObject.getText().toString();
-                String message = messageBodyObject.getText().toString();
-                replyIntent.putExtra(EXTRA_FROM, from);
-                replyIntent.putExtra(EXTRA_TO, to);
-                replyIntent.putExtra(EXTRA_SUBJECT, subject);
-                replyIntent.putExtra(EXTRA_MESSAGE, message);
-                setResult(RESULT_OK, replyIntent);
-            }
-            finish();
-        });
+        setContentView(R.layout.fragment_home);
+
+       NewDraftMessageActivity.this.finish();
+
+
+
+
+
+
+
+
+        }
     }
-}
+
+
+

+ 44 - 25
app/src/main/java/com/noahvogt/miniprojekt/messageCreateFragment.java

@@ -5,6 +5,7 @@ import android.app.Activity;
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.os.Bundle;
+import android.os.Message;
 import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.MenuItem;
@@ -20,6 +21,9 @@ import androidx.annotation.Nullable;
 import androidx.appcompat.app.AlertDialog;
 import androidx.fragment.app.DialogFragment;
 
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
 public class messageCreateFragment extends DialogFragment implements PopupMenu.OnMenuItemClickListener {
 
     public static final String EXTRA_TO = "com.example.android.namelistsql.NAME";
@@ -28,21 +32,25 @@ public class messageCreateFragment extends DialogFragment implements PopupMenu.O
     public static final String EXTRA_MESSAGE = "com.example.android.namelistsql.MESSAGE";
     public static final String EXTRA_DATE = "com.example.android.namelistsql.DATE";
 
-    private EditText sendingAddressObject;
-    private EditText receivingAddressObject;
-    private EditText subjectObject;
-    private EditText messageBodyObject;
+    public EditText sendingAddressObject;
+    public EditText receivingAddressObject;
+    public EditText subjectObject;
+    public EditText messageBodyObject;
 
     public static final int RESULT_CANCELED = 0;
     public static final int RESULT_OK = -1;
 
-    Activity activity = new Activity();
+    public Activity activity = new Activity();
+    public static Intent replyIntent = new Intent();
 
     static messageCreateFragment newInstance() {
         return new messageCreateFragment();
     }
     private AlertDialog dialog;
 
+    private static final int NUMBER_OF_THREADS = 4;
+    static final ExecutorService databaseWriteExecutor =
+            Executors.newFixedThreadPool(NUMBER_OF_THREADS);
 
 
     // set theming style
@@ -79,23 +87,11 @@ public class messageCreateFragment extends DialogFragment implements PopupMenu.O
 
 
         /* dosen't wotk cause Activity is not extendet and used as variable */
-        sendButton.setOnClickListener(View -> {
-            Intent replyIntent = new Intent();
-            if (TextUtils.isEmpty(sendingAddressObject.getText())) {
-                activity.setResult(RESULT_CANCELED, replyIntent);
-            } else {
-                String from = sendingAddressObject.getText().toString();
-                String to = receivingAddressObject.getText().toString();
-                String subject = subjectObject.getText().toString();
-                String message = messageBodyObject.getText().toString();
-                replyIntent.putExtra(EXTRA_FROM, from);
-                replyIntent.putExtra(EXTRA_TO, to);
-                replyIntent.putExtra(EXTRA_SUBJECT, subject);
-                replyIntent.putExtra(EXTRA_MESSAGE, message);
-                activity.setResult(RESULT_OK, replyIntent);
-            }
-            activity.finish();
-        });
+
+
+
+
+
 
         // TODO: add cc + bcc functionality
 
@@ -117,18 +113,41 @@ public class messageCreateFragment extends DialogFragment implements PopupMenu.O
                     AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getActivity());
                     alertDialogBuilder.setTitle("Warning");
                     alertDialogBuilder
-                            .setMessage("Do you really want to cancel?")
+                            .setMessage("Do you want to save your Draft?")
                             .setCancelable(false)
                             .setPositiveButton("Yes",new DialogInterface.OnClickListener() {
                                 public void onClick(DialogInterface dialog, int id) {
+
+                                    activity.setResult(RESULT_CANCELED, replyIntent);
+
+                                    String from = sendingAddressObject.getText().toString();
+                                    String to = receivingAddressObject.getText().toString();
+                                    String subject = subjectObject.getText().toString();
+                                    String message = messageBodyObject.getText().toString();
+
+
+                                    replyIntent.putExtra(EXTRA_FROM, from);
+                                    replyIntent.putExtra(EXTRA_TO, to);
+                                    replyIntent.putExtra(EXTRA_SUBJECT, subject);
+                                    replyIntent.putExtra(EXTRA_MESSAGE, message);
+                                    activity.setResult(RESULT_OK, replyIntent);
+
+                                    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);
+
                                     // if this button is clicked, close the whole fragment
                                     dismiss();
                                 }
                             })
                             .setNegativeButton("No",new DialogInterface.OnClickListener() {
                                 public void onClick(DialogInterface dialog,int id) {
-                                    // if this button is clicked, just close the dialog box
-                                    dialog.cancel();
+                                    // if this button is clicked, close the hole fragment
+                                    dismiss();
                                 }
                             });
 

+ 3 - 12
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.icu.util.Measure;
 
 import androidx.annotation.NonNull;
 import androidx.room.Database;
@@ -17,7 +18,7 @@ public abstract class EmailRoomDatabase extends RoomDatabase{
 
     public abstract MessageDao messageDao();
 
-    /* the INSTANCE can be used ba different threads at the same time */
+    /* the INSTANCE can be used by different threads at the same time */
     private static volatile EmailRoomDatabase INSTANCE;
 
     /* tells room the schema is changed from the version tha is istallend in device
@@ -65,12 +66,8 @@ public abstract class EmailRoomDatabase extends RoomDatabase{
                 MessageDao dao = INSTANCE.messageDao();
                 dao.deleteAll();
 
-               Message word = new Message("Simon", null, null,
-                        "YungBoy", "28.8.21", "draftTest", "I want to try it", "Draft",
-                        true);
-               dao.insert(word);
 
-               word = new Message("Noah", null , null,
+                Message word = new Message("Noah", null , null,
                         "Samuel", "31.9.21", "inboxTest", "I Try my best", "Inbox",
                         true);
                dao.insert(word);
@@ -94,12 +91,6 @@ public abstract class EmailRoomDatabase extends RoomDatabase{
                    dao.insert(word);
                }
 
-                for (int i = 1; i < 20; i++){
-                    word = new Message("Simon", null, null,
-                            "Jürgen", "tomorrow", "Draft20", "lets goo","Draft",
-                            true);
-                    dao.insert(word);
-                }
 
                 word = new Message("Simon", null, null,
                         "Maurice", "yesterday", "ArchiveTest", "lets goo","Archive",

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

@@ -30,8 +30,6 @@ public class GalleryFragment extends Fragment {
     public View onCreateView(@NonNull LayoutInflater inflater,
                              ViewGroup container, Bundle savedInstanceState) {
 
-
-
         recyclerView = MainActivity.recyclerView.findViewById(R.id.recyclerView);
 
         final CustomAdapter adapter = new CustomAdapter(new CustomAdapter.EmailDiff());