Jelajahi Sumber

wrap all python imported functions into mailFunctions.java

Noah Vogt 3 tahun lalu
induk
melakukan
e526c1e857

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

@@ -33,6 +33,8 @@ import java.util.List;
 
 import com.chaquo.python.android.PyApplication;
 
+import com.noahvogt.miniprojekt.mailFunctions;
+
 import static com.noahvogt.miniprojekt.R.id.drawer_layout;
 
 public class MainActivity extends AppCompatActivity implements View.OnClickListener {
@@ -169,21 +171,13 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
                     return;
                 }
 
-                Python python = Python.getInstance();
-                PyObject helloWorld = python.getModule("helloworldscript");
-                String stringFromPy = helloWorld.callAttr("hi").toString();
-                showToast(stringFromPy);
-
-                PyObject pythonMailFunctions = python.getModule("mailFunctions");
-                Boolean canConnectBool = pythonMailFunctions.callAttr(
-                        "checkConnection", name, email, password, 993).toBoolean();
-                if (canConnectBool == Boolean.TRUE) {
+                /* connect to mail server and print various debugging output */
+                if (mailFunctions.canConnect(name, email, password) == Boolean.TRUE) {
                     showToast("was able to connect");
-                    List l =  pythonMailFunctions.callAttr("listMailboxes", pythonMailFunctions.callAttr("connect", name, email, password, 993)).asList();
+                    List l =  mailFunctions.listMailboxes(mailFunctions.getIMAPConnection(name, email, password));
                     for (int i = 0; i < l.size(); i++) {
                         showToast(l.get(i).toString());
                     }
-
                 } else {
                     showToast("failed to connect");
 

+ 22 - 1
app/src/main/java/com/noahvogt/miniprojekt/mailFunctions.java

@@ -3,9 +3,30 @@ package com.noahvogt.miniprojekt;
 import android.util.Patterns;
 import android.widget.EditText;
 
+import com.chaquo.python.PyObject;
+import com.chaquo.python.Python;
+
+import java.util.List;
+
 public class mailFunctions {
 
-    /* TODO: resolve endIcon style conflict */
+    public static boolean canConnect(String host, String email, String password) {
+        Python python = Python.getInstance();
+        PyObject pythonMailFunctions = python.getModule("mailFunctions");
+        return pythonMailFunctions.callAttr("checkConnection", host, email, password, 993).toBoolean();
+    }
+
+    public static PyObject getIMAPConnection(String host, String email, String password) {
+        Python python = Python.getInstance();
+        PyObject pythonMailFunctions = python.getModule("mailFunctions");
+        return pythonMailFunctions.callAttr("connect", host, email, password, 993);
+    }
+
+    public static List listMailboxes(PyObject IMAPConnection) {
+        Python python = Python.getInstance();
+        PyObject pythonMailFunctions = python.getModule("mailFunctions");
+        return pythonMailFunctions.callAttr("listMailboxes", IMAPConnection).asList();
+    }
 
     public static boolean validateName(EditText emailName) {
         String name = emailName.getText().toString().trim();