Parcourir la source

validate user input before sending

Noah Vogt il y a 4 ans
Parent
commit
1a61d0f45e

+ 30 - 3
app/src/main/java/com/noahvogt/miniprojekt/mailFunctions.java

@@ -5,7 +5,8 @@ import android.widget.EditText;
 
 public class mailFunctions {
 
-    // TODO: resolve password endIcon conflict
+    // TODO: resolve endIcon style conflict
+
     public static boolean validateName(EditText emailName) {
         String name = emailName.getText().toString().trim();
 
@@ -21,7 +22,6 @@ public class mailFunctions {
         }
     }
 
-    // TODO: resolve password endIcon conflict
     public static boolean validateEmail(EditText emailAddress) {
         String email = emailAddress.getText().toString().trim();
 
@@ -37,7 +37,6 @@ public class mailFunctions {
         }
     }
 
-    // TODO: resolve password endIcon conflicts
     public static boolean validatePassword(EditText emailPassword) {
         String password = emailPassword.getText().toString().trim();
 
@@ -49,4 +48,32 @@ public class mailFunctions {
             return true;
         }
     }
+
+    public static boolean validateSubject(EditText emailSubject) {
+        String subject = emailSubject.getText().toString();
+        // TODO: check email protocol specification for what is allowed for subjects
+        return true;
+    }
+
+    public static boolean validateMessageBody(EditText emailMessageBody) {
+        String messageBody = emailMessageBody.getText().toString();
+        // TODO: check email protocol specification for what is allowed for message bodies
+        return true;
+    }
+
+
+    public static boolean checkForSameEmail(EditText firstAddress, EditText secondAddress) {
+        String firstEmail = firstAddress.getText().toString();
+        String secondEmail = secondAddress.getText().toString();
+
+        if (firstEmail.equals(secondEmail)) {
+            firstAddress.setError("Fields cannot be the same");
+            secondAddress.setError("Fields cannot be the same");
+            return true;
+        } else {
+            firstAddress.setError(null);
+            secondAddress.setError(null);
+            return false;
+        }
+    }
 }

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

@@ -6,7 +6,6 @@ import android.view.LayoutInflater;
 import android.view.MenuItem;
 import android.view.View;
 import android.view.ViewGroup;
-import android.widget.Button;
 import android.widget.EditText;
 import android.widget.ImageButton;
 import android.widget.PopupMenu;
@@ -17,8 +16,6 @@ import androidx.annotation.Nullable;
 import androidx.appcompat.app.AlertDialog;
 import androidx.fragment.app.DialogFragment;
 
-import com.google.android.material.snackbar.Snackbar;
-
 public class messageCreateFragment extends DialogFragment implements PopupMenu.OnMenuItemClickListener {
 
     static messageCreateFragment newInstance() {
@@ -122,8 +119,23 @@ public class messageCreateFragment extends DialogFragment implements PopupMenu.O
         sendButton.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                // TODO: implement sending functionality
-                dismiss();
+                // init vars, MAYBE NEEDED FOR LATER
+                String sendingAddress = sendingAddressObject.getText().toString();
+                String receivingAddress = receivingAddressObject.getText().toString();
+                String subject = subjectObject.getText().toString();
+                String messageBody = messageBodyObject.getText().toString();
+
+                // check for valid input
+                if (mailFunctions.validateMessageBody(messageBodyObject) && mailFunctions.validateSubject(subjectObject) &&
+                mailFunctions.validateEmail(receivingAddressObject) && mailFunctions.validateEmail(sendingAddressObject) &&
+                !mailFunctions.checkForSameEmail(sendingAddressObject, receivingAddressObject)) {
+                    Toast.makeText(getActivity(), "sending ... ", Toast.LENGTH_SHORT).show();
+                    dismiss();
+                } else {
+                    Toast.makeText(getActivity(), "Please check your input", Toast.LENGTH_SHORT).show();
+                }
+
+                // TODO: implement actual sending functionality
             }
         });
 
@@ -131,7 +143,16 @@ public class messageCreateFragment extends DialogFragment implements PopupMenu.O
         return view;
     }
 
-    // TODO: add useful functionality to the menu + consider not using Resource ID's in switch statement
+    /* TODO: add useful functionality to the menu + consider not using Resource ID's in switch statement
+
+        IDEAS:
+        - safe to draft
+        - clear all user input
+        - change / check email signature
+        - some email header hacking / options / customization
+        - mail server probing
+        - sending address spoofer ??
+    */
     @Override
     public boolean onMenuItemClick(MenuItem item) {
         switch (item.getItemId()) {