From c3032f4cd83c94655c86351b578a829df3a6180b Mon Sep 17 00:00:00 2001
From: cyBerta <cyberta@riseup.net>
Date: Sat, 7 Dec 2024 03:27:14 +0100
Subject: [PATCH] implement provider setup progress event handling for v5

---
 .../providersetup/ProviderApiManagerV5.java           | 11 ++++++++---
 .../providersetup/ProviderSetupObservable.java        |  3 +++
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerV5.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerV5.java
index 404ded0aa..926b15458 100644
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerV5.java
+++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerV5.java
@@ -18,8 +18,10 @@ import static se.leap.bitmaskclient.providersetup.ProviderAPI.QUIETLY_UPDATE_VPN
 import static se.leap.bitmaskclient.providersetup.ProviderAPI.SET_UP_PROVIDER;
 import static se.leap.bitmaskclient.providersetup.ProviderAPI.UPDATE_INVALID_VPN_CERTIFICATE;
 import static se.leap.bitmaskclient.providersetup.ProviderSetupFailedDialog.DOWNLOAD_ERRORS.ERROR_INVALID_CERTIFICATE;
-import static se.leap.bitmaskclient.providersetup.ProviderSetupObservable.DOWNLOADED_EIP_SERVICE_JSON;
-import static se.leap.bitmaskclient.providersetup.ProviderSetupObservable.DOWNLOADED_PROVIDER_JSON;
+import static se.leap.bitmaskclient.providersetup.ProviderSetupObservable.DOWNLOADED_V5_BRIDGES;
+import static se.leap.bitmaskclient.providersetup.ProviderSetupObservable.DOWNLOADED_V5_SERVICE_JSON;
+import static se.leap.bitmaskclient.providersetup.ProviderSetupObservable.DOWNLOADED_V5_GATEWAYS;
+import static se.leap.bitmaskclient.providersetup.ProviderSetupObservable.DOWNLOADED_VPN_CERTIFICATE;
 import static se.leap.bitmaskclient.tor.TorStatusObservable.TorStatus.OFF;
 
 import android.content.res.Resources;
@@ -178,7 +180,7 @@ public class ProviderApiManagerV5 extends ProviderApiManagerBase implements IPro
             String serviceJson = bm.getService();
             Log.d(TAG, "service Json reponse: " + serviceJson);
             provider.setService(serviceJson);
-            ProviderSetupObservable.updateProgress(DOWNLOADED_EIP_SERVICE_JSON);
+            ProviderSetupObservable.updateProgress(DOWNLOADED_V5_SERVICE_JSON);
         } catch (Exception e) {
             Log.w(TAG, "failed to fetch service.json: " + e.getMessage());
             e.printStackTrace();
@@ -190,6 +192,7 @@ public class ProviderApiManagerV5 extends ProviderApiManagerBase implements IPro
             String gatewaysJson = bm.getAllGateways("", "", "");
             Log.d(TAG, "gateways Json reponse: " + gatewaysJson);
             provider.setGateways(gatewaysJson);
+            ProviderSetupObservable.updateProgress(DOWNLOADED_V5_GATEWAYS);
         } catch (Exception e) {
             Log.w(TAG, "failed to fetch gateways: " + e.getMessage());
             e.printStackTrace();
@@ -201,6 +204,7 @@ public class ProviderApiManagerV5 extends ProviderApiManagerBase implements IPro
             String bridgesJson = bm.getAllBridges("", "", "", "");
             Log.d(TAG, "bridges Json reponse: " + bridgesJson);
             provider.setBridges(bridgesJson);
+            ProviderSetupObservable.updateProgress(DOWNLOADED_V5_BRIDGES);
         } catch (Exception e) {
             Log.w(TAG, "failed to fetch bridges: " + e.getMessage());
             e.printStackTrace();
@@ -211,6 +215,7 @@ public class ProviderApiManagerV5 extends ProviderApiManagerBase implements IPro
             String cert = bm.getOpenVPNCert();
             currentDownload = loadCredentials(provider, cert);
             currentDownload = validateCertificateForProvider(currentDownload, provider);
+            ProviderSetupObservable.updateProgress(DOWNLOADED_VPN_CERTIFICATE);
         } catch (Exception e) {
             return eventSender.setErrorResult(currentDownload, R.string.error_json_exception_user_message, null);
         }
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderSetupObservable.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderSetupObservable.java
index 237f5bd27..d57e17395 100644
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderSetupObservable.java
+++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderSetupObservable.java
@@ -38,6 +38,9 @@ public class ProviderSetupObservable {
     private boolean canceled = false;
     public static final int DOWNLOADED_PROVIDER_JSON = 20;
     public static final int DOWNLOADED_CA_CERT = 40;
+    public static final int DOWNLOADED_V5_SERVICE_JSON = 40;
+    public static final int DOWNLOADED_V5_GATEWAYS = 60;
+    public static final int DOWNLOADED_V5_BRIDGES = 80;
     public static final int DOWNLOADED_EIP_SERVICE_JSON = 60;
     public static final int DOWNLOADED_GEOIP_JSON = 80;
     public static final int DOWNLOADED_VPN_CERTIFICATE = 100;
-- 
GitLab