mailFunctions.java 3.8 KB

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