MailFunctions.java 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. package com.noahvogt.miniprojekt;
  2. import android.util.Patterns;
  3. import android.widget.EditText;
  4. import com.chaquo.python.PyObject;
  5. import com.chaquo.python.Python;
  6. import java.util.List;
  7. public class MailFunctions {
  8. public static boolean canConnect(String host, String email, String password) {
  9. Python python = Python.getInstance();
  10. PyObject pythonMailFunctions = python.getModule("mailFunctions");
  11. return pythonMailFunctions.callAttr("checkConnection", host, email, password, 993).toBoolean();
  12. }
  13. public static void sendStarttlsMail(String host, String sendingMail, String receivingMail, String password, String message, String subject, String cc, String bcc) {
  14. Python python = Python.getInstance();
  15. PyObject pythonMailFunctions = python.getModule("mailFunctions");
  16. pythonMailFunctions.callAttr("sendStarttls", host, sendingMail, receivingMail, password, message, subject, 587, cc, bcc);
  17. }
  18. public static PyObject getIMAPConnection(String host, String email, String password) {
  19. Python python = Python.getInstance();
  20. PyObject pythonMailFunctions = python.getModule("mailFunctions");
  21. return pythonMailFunctions.callAttr("connect", host, email, password, 993);
  22. }
  23. public static List listMailboxes(PyObject IMAPConnection) {
  24. Python python = Python.getInstance();
  25. PyObject pythonMailFunctions = python.getModule("mailFunctions");
  26. return pythonMailFunctions.callAttr("listMailboxes", IMAPConnection).asList();
  27. }
  28. public static List fetchMailsFromBox(PyObject IMAPConnection, String Folder, String InputType) {
  29. Python python = Python.getInstance();
  30. PyObject pythonMailFunctions = python.getModule("mailFunctions");
  31. return pythonMailFunctions.callAttr("fetchMails", IMAPConnection, Folder).asList();
  32. }
  33. public static boolean validateName(EditText emailName) {
  34. String name = emailName.getText().toString().trim();
  35. if (name.isEmpty()) {
  36. emailName.setError("Field can't be empty");
  37. return false;
  38. } else if (name.length() > 50) {
  39. emailName.setError("Name too long");
  40. return false;
  41. } else {
  42. emailName.setError(null);
  43. return true;
  44. }
  45. }
  46. public static boolean validateEmail(EditText emailAddress) {
  47. String email = emailAddress.getText().toString().trim();
  48. if (email.isEmpty()) {
  49. emailAddress.setError("Field can't be empty");
  50. return false;
  51. } else if (!Patterns.EMAIL_ADDRESS.matcher(email).matches()) {
  52. emailAddress.setError("Please enter a valid email address");
  53. return false;
  54. } else {
  55. emailAddress.setError(null);
  56. return true;
  57. }
  58. }
  59. public static boolean validatePassword(EditText emailPassword) {
  60. String password = emailPassword.getText().toString().trim();
  61. if (password.isEmpty()) {
  62. emailPassword.setError("Field can't be empty");
  63. return false;
  64. } else {
  65. emailPassword.setError(null);
  66. return true;
  67. }
  68. }
  69. public static boolean validateSubject(EditText emailSubject) {
  70. String subject = emailSubject.getText().toString();
  71. /* TODO: check email protocol specification for what is allowed for subjects */
  72. return true;
  73. }
  74. public static boolean validateMessageBody(EditText emailMessageBody) {
  75. String messageBody = emailMessageBody.getText().toString();
  76. /* TODO: check email protocol specification for what is allowed for message bodies */
  77. return true;
  78. }
  79. public static boolean checkForSameEmail(EditText firstAddress, EditText secondAddress) {
  80. String firstEmail = firstAddress.getText().toString();
  81. String secondEmail = secondAddress.getText().toString();
  82. if (firstEmail.equals(secondEmail)) {
  83. firstAddress.setError("Fields cannot be the same");
  84. secondAddress.setError("Fields cannot be the same");
  85. return true;
  86. } else {
  87. firstAddress.setError(null);
  88. secondAddress.setError(null);
  89. return false;
  90. }
  91. }
  92. }