From 9184a9db5d3a5f8cfbec37e82f344da120895e80 Mon Sep 17 00:00:00 2001
From: NaiJi <naijiworld@protonmail.com>
Date: Thu, 5 Jan 2023 14:05:05 +0400
Subject: [PATCH] feat: Implement DnsProvider loaging

---
 .../initializing/dns_provider_form_cubit.dart    |  1 -
 .../server_installation_repository.dart          | 16 ++++++++++------
 lib/ui/pages/services/service_page.dart          |  1 -
 lib/ui/pages/services/services.dart              |  1 -
 4 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/lib/logic/cubit/forms/setup/initializing/dns_provider_form_cubit.dart b/lib/logic/cubit/forms/setup/initializing/dns_provider_form_cubit.dart
index eb23dd42..084adb83 100644
--- a/lib/logic/cubit/forms/setup/initializing/dns_provider_form_cubit.dart
+++ b/lib/logic/cubit/forms/setup/initializing/dns_provider_form_cubit.dart
@@ -3,7 +3,6 @@ import 'dart:async';
 import 'package:cubit_form/cubit_form.dart';
 import 'package:easy_localization/easy_localization.dart';
 import 'package:selfprivacy/logic/cubit/server_installation/server_installation_cubit.dart';
-import 'package:selfprivacy/logic/cubit/forms/validations/validations.dart';
 
 class DnsProviderFormCubit extends FormCubit {
   DnsProviderFormCubit(this.initializingCubit) {
diff --git a/lib/logic/cubit/server_installation/server_installation_repository.dart b/lib/logic/cubit/server_installation/server_installation_repository.dart
index 83a2d2fa..5f98229f 100644
--- a/lib/logic/cubit/server_installation/server_installation_repository.dart
+++ b/lib/logic/cubit/server_installation/server_installation_repository.dart
@@ -48,6 +48,7 @@ class ServerInstallationRepository {
     final String? cloudflareToken = getIt<ApiConfigModel>().dnsProviderKey;
     final String? serverTypeIdentificator = getIt<ApiConfigModel>().serverType;
     final ServerDomain? serverDomain = getIt<ApiConfigModel>().serverDomain;
+    final DnsProvider? dnsProvider = getIt<ApiConfigModel>().dnsProvider;
     final ServerProvider? serverProvider =
         getIt<ApiConfigModel>().serverProvider;
     final BackblazeCredential? backblazeCredential =
@@ -75,12 +76,15 @@ class ServerInstallationRepository {
       );
     }
 
-    // No other DNS provider is supported for now, so it's fine.
-    ApiController.initDnsProviderApiFactory(
-      DnsProviderApiFactorySettings(
-        provider: DnsProvider.cloudflare,
-      ),
-    );
+    if (dnsProvider != null ||
+        (serverDomain != null &&
+            serverDomain.provider != ServerProvider.unknown)) {
+      ApiController.initDnsProviderApiFactory(
+        DnsProviderApiFactorySettings(
+          provider: dnsProvider ?? serverDomain!.provider,
+        ),
+      );
+    }
 
     if (box.get(BNames.hasFinalChecked, defaultValue: false)) {
       return ServerInstallationFinished(
diff --git a/lib/ui/pages/services/service_page.dart b/lib/ui/pages/services/service_page.dart
index c2ebbe3a..b6ca7cee 100644
--- a/lib/ui/pages/services/service_page.dart
+++ b/lib/ui/pages/services/service_page.dart
@@ -11,7 +11,6 @@ import 'package:selfprivacy/ui/components/brand_hero_screen/brand_hero_screen.da
 import 'package:selfprivacy/ui/pages/server_storage/binds_migration/services_migration.dart';
 import 'package:selfprivacy/utils/network_utils.dart';
 import 'package:selfprivacy/utils/route_transitions/basic.dart';
-import 'package:url_launcher/url_launcher.dart';
 
 class ServicePage extends StatefulWidget {
   const ServicePage({required this.serviceId, super.key});
diff --git a/lib/ui/pages/services/services.dart b/lib/ui/pages/services/services.dart
index 0f0243ef..e6c0e5c9 100644
--- a/lib/ui/pages/services/services.dart
+++ b/lib/ui/pages/services/services.dart
@@ -15,7 +15,6 @@ import 'package:selfprivacy/ui/pages/services/service_page.dart';
 import 'package:selfprivacy/utils/network_utils.dart';
 import 'package:selfprivacy/utils/route_transitions/basic.dart';
 import 'package:selfprivacy/utils/ui_helpers.dart';
-import 'package:url_launcher/url_launcher.dart';
 
 class ServicesPage extends StatefulWidget {
   const ServicesPage({super.key});