From 9e86d5dde72af2fc5751b4ef59ee1eab6ed482d5 Mon Sep 17 00:00:00 2001
From: cutestnekoaqua <waterdev@galaxycrow.de>
Date: Sat, 8 Apr 2023 14:31:41 +0200
Subject: [PATCH] fix reloads

---
 packages/client/android/app/build.gradle                   | 1 +
 .../app/src/main/java/org/calckey/app/MainActivity.java    | 5 +++++
 packages/client/src/init.ts                                | 7 ++++++-
 packages/client/src/pages/welcome.entrance.a.vue           | 4 ++--
 packages/client/src/scripts/unison-reload.ts               | 4 ++--
 5 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/packages/client/android/app/build.gradle b/packages/client/android/app/build.gradle
index 2fa5660d61..9d8c022cb4 100644
--- a/packages/client/android/app/build.gradle
+++ b/packages/client/android/app/build.gradle
@@ -34,6 +34,7 @@ dependencies {
     implementation "androidx.appcompat:appcompat:$androidxAppCompatVersion"
     implementation "androidx.coordinatorlayout:coordinatorlayout:$androidxCoordinatorLayoutVersion"
     implementation "androidx.core:core-splashscreen:$coreSplashScreenVersion"
+		implementation 'com.jakewharton:process-phoenix:2.1.2'
     implementation project(':capacitor-android')
     testImplementation "junit:junit:$junitVersion"
     androidTestImplementation "androidx.test.ext:junit:$androidxJunitVersion"
diff --git a/packages/client/android/app/src/main/java/org/calckey/app/MainActivity.java b/packages/client/android/app/src/main/java/org/calckey/app/MainActivity.java
index b54348eab3..1575497361 100644
--- a/packages/client/android/app/src/main/java/org/calckey/app/MainActivity.java
+++ b/packages/client/android/app/src/main/java/org/calckey/app/MainActivity.java
@@ -6,6 +6,7 @@ import android.webkit.WebSettings;
 
 import com.getcapacitor.BridgeActivity;
 import com.getcapacitor.Plugin;
+import com.jakewharton.processphoenix.ProcessPhoenix;
 
 import java.util.ArrayList;
 
@@ -30,6 +31,10 @@ public class MainActivity extends BridgeActivity {
     }
   }
 
+	public void restartApp() {
+		ProcessPhoenix.triggerRebirth(this.getApplicationContext());
+	}
+
   @Override
   public void onStart() {
     super.onStart();
diff --git a/packages/client/src/init.ts b/packages/client/src/init.ts
index 338383dd52..0f8d05ec52 100644
--- a/packages/client/src/init.ts
+++ b/packages/client/src/init.ts
@@ -16,6 +16,7 @@ const res = await Device.getInfo();
 	storedDeviceInfo = res;
 	if (!localStorage.getItem("lang")) {
 		localStorage.setItem("lang", "en-US");
+		document.location.href = '/';
 	}
 	const lang: string = localStorage.getItem("lang") || "";
 	const lang_res = await fetch(`/assets/locales/${lang}.${version}.json`);
@@ -229,7 +230,11 @@ const onesignal_app_id = "efe09597-0778-4156-97b7-0bf8f52c21a7";
 				console.log("not signed in");
 			}
 			// #v-ifdef VITE_CAPACITOR
-			applyTheme(lightThemeDefault);
+			applyTheme(
+				defaultStore.reactiveState.darkMode.value ?
+				ColdDeviceStorage.get("darkTheme") :
+				ColdDeviceStorage.get("lightTheme")
+			)
 			// #v-endif
 		}
 	}
diff --git a/packages/client/src/pages/welcome.entrance.a.vue b/packages/client/src/pages/welcome.entrance.a.vue
index 6f53bda354..3bd0f68048 100644
--- a/packages/client/src/pages/welcome.entrance.a.vue
+++ b/packages/client/src/pages/welcome.entrance.a.vue
@@ -219,9 +219,9 @@ async function reloadAsk() {
 
 function unisonReload(path?: string) {
   if (path !== undefined) {
-    location.href = path;
+    document.location.href = path;
   } else {
-    location.reload();
+    document.location.reload();
   }
 }
 // #v-endif
diff --git a/packages/client/src/scripts/unison-reload.ts b/packages/client/src/scripts/unison-reload.ts
index 4ba35c59a1..64fbd7f204 100644
--- a/packages/client/src/scripts/unison-reload.ts
+++ b/packages/client/src/scripts/unison-reload.ts
@@ -7,9 +7,9 @@ export const reloadChannel = new BroadcastChannel<string | null>("reload");
 export function unisonReload(path?: string) {
 	if (path !== undefined) {
 		reloadChannel.postMessage(path);
-		location.href = path;
+		document.location.href = path;
 	} else {
 		reloadChannel.postMessage(null);
-		location.reload();
+		document.location.reload();
 	}
 }