diff --git a/android/app/src/main/res/drawable-v21/launch_background.xml b/android/app/src/main/res/drawable-v21/launch_background.xml
new file mode 100644
index 00000000..f74085f3
--- /dev/null
+++ b/android/app/src/main/res/drawable-v21/launch_background.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
diff --git a/android/app/src/main/res/values-night/styles.xml b/android/app/src/main/res/values-night/styles.xml
new file mode 100644
index 00000000..3db14bb5
--- /dev/null
+++ b/android/app/src/main/res/values-night/styles.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
diff --git a/lib/config/hive_config.dart b/lib/config/hive_config.dart
index 9cd19459..3eeb1219 100644
--- a/lib/config/hive_config.dart
+++ b/lib/config/hive_config.dart
@@ -5,7 +5,7 @@ import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:hive_flutter/hive_flutter.dart';
import 'package:selfprivacy/logic/models/backblaze_bucket.dart';
import 'package:selfprivacy/logic/models/backblaze_credential.dart';
-import 'package:selfprivacy/logic/models/cloudflare_domain.dart';
+import 'package:selfprivacy/logic/models/server_domain.dart';
import 'package:selfprivacy/logic/models/server_details.dart';
import 'package:selfprivacy/logic/models/user.dart';
@@ -14,7 +14,7 @@ class HiveConfig {
await Hive.initFlutter();
Hive.registerAdapter(UserAdapter());
Hive.registerAdapter(HetznerServerDetailsAdapter());
- Hive.registerAdapter(CloudFlareDomainAdapter());
+ Hive.registerAdapter(ServerDomainAdapter());
Hive.registerAdapter(BackblazeCredentialAdapter());
Hive.registerAdapter(BackblazeBucketAdapter());
Hive.registerAdapter(HetznerDataBaseAdapter());
@@ -56,13 +56,14 @@ class BNames {
static String key = 'key';
static String sshEnckey = 'sshEngkey';
- static String cloudFlareDomain = 'cloudFlareDomain';
+ static String hasFinalChecked = 'hasFinalChecked';
+ static String isServerStarted = 'isServerStarted';
+
+ static String serverDomain = 'cloudFlareDomain';
static String hetznerKey = 'hetznerKey';
static String cloudFlareKey = 'cloudFlareKey';
static String rootUser = 'rootUser';
- static String hetznerServer = 'hetznerServer';
- static String hasFinalChecked = 'hasFinalChecked';
- static String isServerStarted = 'isServerStarted';
+ static String serverDetails = 'hetznerServer';
static String backblazeKey = 'backblazeKey';
static String backblazeBucket = 'backblazeBucket';
static String isLoading = 'isLoading';
@@ -71,5 +72,4 @@ class BNames {
static String sshConfig = 'sshConfig';
static String sshPrivateKey = "sshPrivateKey";
static String sshPublicKey = "sshPublicKey";
- static String serverDomain = "serverDomain";
}
diff --git a/lib/logic/api_maps/cloudflare.dart b/lib/logic/api_maps/cloudflare.dart
index 5aaf9dc7..5b81fdba 100644
--- a/lib/logic/api_maps/cloudflare.dart
+++ b/lib/logic/api_maps/cloudflare.dart
@@ -3,7 +3,7 @@ import 'dart:io';
import 'package:dio/dio.dart';
import 'package:selfprivacy/config/get_it_config.dart';
import 'package:selfprivacy/logic/api_maps/api_map.dart';
-import 'package:selfprivacy/logic/models/cloudflare_domain.dart';
+import 'package:selfprivacy/logic/models/server_domain.dart';
import 'package:selfprivacy/logic/models/dns_records.dart';
class CloudflareApi extends ApiMap {
@@ -63,7 +63,7 @@ class CloudflareApi extends ApiMap {
Future removeSimilarRecords({
String? ip4,
- required CloudFlareDomain cloudFlareDomain,
+ required ServerDomain cloudFlareDomain,
}) async {
var domainName = cloudFlareDomain.domainName;
var domainZoneId = cloudFlareDomain.zoneId;
@@ -89,7 +89,7 @@ class CloudflareApi extends ApiMap {
}
Future> getDnsRecords({
- required CloudFlareDomain cloudFlareDomain,
+ required ServerDomain cloudFlareDomain,
}) async {
var domainName = cloudFlareDomain.domainName;
var domainZoneId = cloudFlareDomain.zoneId;
@@ -120,7 +120,7 @@ class CloudflareApi extends ApiMap {
Future createMultipleDnsRecords({
String? ip4,
- required CloudFlareDomain cloudFlareDomain,
+ required ServerDomain cloudFlareDomain,
}) async {
var domainName = cloudFlareDomain.domainName;
var domainZoneId = cloudFlareDomain.zoneId;
@@ -186,7 +186,7 @@ class CloudflareApi extends ApiMap {
}
Future setDkim(
- String dkimRecordString, CloudFlareDomain cloudFlareDomain) async {
+ String dkimRecordString, ServerDomain cloudFlareDomain) async {
final domainZoneId = cloudFlareDomain.zoneId;
final url = '$rootAddress/zones/$domainZoneId/dns_records';
diff --git a/lib/logic/api_maps/hetzner.dart b/lib/logic/api_maps/hetzner.dart
index 77afa5d8..304650f2 100644
--- a/lib/logic/api_maps/hetzner.dart
+++ b/lib/logic/api_maps/hetzner.dart
@@ -68,7 +68,7 @@ class HetznerApi extends ApiMap {
return server == null;
}
- Future createVolume() async {
+ Future createVolume() async {
var client = await getClient();
Response dbCreateResponse = await client.post(
'/volumes',
@@ -82,17 +82,17 @@ class HetznerApi extends ApiMap {
},
);
var dbId = dbCreateResponse.data['volume']['id'];
- return HetznerDataBase(
+ return ServerVolume(
id: dbId,
name: dbCreateResponse.data['volume']['name'],
);
}
- Future createServer({
+ Future createServer({
required String cloudFlareKey,
required User rootUser,
required String domainName,
- required HetznerDataBase dataBase,
+ required ServerVolume dataBase,
}) async {
var client = await getClient();
@@ -136,7 +136,7 @@ class HetznerApi extends ApiMap {
print(serverCreateResponse.data);
client.close();
- return HetznerServerDetails(
+ return ServerHostingDetails(
id: serverCreateResponse.data['server']['id'],
ip4: serverCreateResponse.data['server']['public_net']['ipv4']['ip'],
createTime: DateTime.now(),
@@ -189,8 +189,8 @@ class HetznerApi extends ApiMap {
close(client);
}
- Future reset() async {
- var server = getIt().hetznerServer!;
+ Future reset() async {
+ var server = getIt().serverDetails!;
var client = await getClient();
await client.post('/servers/${server.id}/actions/reset');
@@ -199,8 +199,8 @@ class HetznerApi extends ApiMap {
return server.copyWith(startTime: DateTime.now());
}
- Future powerOn() async {
- var server = getIt().hetznerServer!;
+ Future powerOn() async {
+ var server = getIt().serverDetails!;
var client = await getClient();
await client.post('/servers/${server.id}/actions/poweron');
@@ -211,7 +211,7 @@ class HetznerApi extends ApiMap {
Future