From 0fa73cc7334ec5ca84bf57c103e8ee1c25e9b7e1 Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 29 Jul 2022 11:20:16 +0200 Subject: [PATCH] Restore waiting for analysis --- .../java/eu/faircode/email/VirusTotal.java | 5 +++- .../java/eu/faircode/email/VirusTotal.java | 10 +++---- .../eu/faircode/email/AdapterAttachment.java | 28 ++++++++++++------- 3 files changed, 26 insertions(+), 17 deletions(-) diff --git a/app/src/dummy/java/eu/faircode/email/VirusTotal.java b/app/src/dummy/java/eu/faircode/email/VirusTotal.java index c750ef2792..b5f63e43ec 100644 --- a/app/src/dummy/java/eu/faircode/email/VirusTotal.java +++ b/app/src/dummy/java/eu/faircode/email/VirusTotal.java @@ -39,10 +39,13 @@ public class VirusTotal { return null; } - static Bundle upload(Context context, File file, String apiKey, Runnable analyzing) { + static String upload(Context context, File file, String apiKey) { return null; } + static void waitForAnalysis(Context context, String id, String apiKey) { + } + public static class ScanResult implements Parcelable { public String name; public String category; diff --git a/app/src/extra/java/eu/faircode/email/VirusTotal.java b/app/src/extra/java/eu/faircode/email/VirusTotal.java index 5fc281e88b..b5f4c4cb93 100644 --- a/app/src/extra/java/eu/faircode/email/VirusTotal.java +++ b/app/src/extra/java/eu/faircode/email/VirusTotal.java @@ -93,8 +93,7 @@ public class VirusTotal { return result; } - static void upload(Context context, File file, String apiKey, Runnable analyzing) - throws IOException, JSONException, InterruptedException, TimeoutException { + static String upload(Context context, File file, String apiKey) throws IOException, JSONException { // Get upload URL Pair response = call(context, "api/v3/files/upload_url", apiKey); if (response.first != HttpsURLConnection.HTTP_OK) @@ -103,7 +102,6 @@ public class VirusTotal { String upload_url = jurl.getString("data"); // Upload file - String id; String boundary = "----FairEmail." + System.currentTimeMillis(); URL url = new URL(upload_url); @@ -164,16 +162,16 @@ public class VirusTotal { Log.i("VT response=" + r); JSONObject jfile = new JSONObject(r); JSONObject jdata = jfile.getJSONObject("data"); - id = jdata.getString("id"); + return jdata.getString("id"); } finally { connection.disconnect(); } + } + static void waitForAnalysis(Context context, String id, String apiKey) throws IOException, JSONException, InterruptedException, TimeoutException { // Get analysis result for (int i = 0; i < VT_ANALYSIS_CHECKS; i++) { - analyzing.run(); - Pair analyses = call(context, "api/v3/analyses/" + id, apiKey); if (analyses.first != HttpsURLConnection.HTTP_OK) throw new FileNotFoundException(analyses.second); diff --git a/app/src/main/java/eu/faircode/email/AdapterAttachment.java b/app/src/main/java/eu/faircode/email/AdapterAttachment.java index 9eae028fd2..243d4be29a 100644 --- a/app/src/main/java/eu/faircode/email/AdapterAttachment.java +++ b/app/src/main/java/eu/faircode/email/AdapterAttachment.java @@ -594,6 +594,7 @@ public class AdapterAttachment extends RecyclerView.Adapter scans = result.getParcelableArrayList("scans"); String label = result.getString("label"); + String analysis = args.getString("analysis"); int malicious = 0; if (scans != null) @@ -615,6 +616,11 @@ public class AdapterAttachment extends RecyclerView.Adapter