From 44e5d718e7950dc59c92ce16ea52cc79d19322f6 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Thu, 6 Mar 2025 16:12:20 -0800 Subject: remember last pathname for start page --- android/app/src/main/java/io/coinos/MainActivity.java | 17 +++++++++++++++++ capacitor.config.json | 2 +- src/routes/(app)/+layout.server.ts | 1 + src/routes/(app)/+layout.svelte | 1 + src/routes/+layout.ts | 7 ++++--- src/routes/start/+server.ts | 4 +++- 6 files changed, 27 insertions(+), 5 deletions(-) diff --git a/android/app/src/main/java/io/coinos/MainActivity.java b/android/app/src/main/java/io/coinos/MainActivity.java index a94f0cc5..7f710952 100644 --- a/android/app/src/main/java/io/coinos/MainActivity.java +++ b/android/app/src/main/java/io/coinos/MainActivity.java @@ -8,12 +8,19 @@ import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.webkit.CookieManager; +import android.webkit.WebView; public class MainActivity extends BridgeActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + WebView webView = bridge.getWebView(); + CookieManager cookieManager = CookieManager.getInstance(); + cookieManager.setAcceptCookie(true); + webView.getSettings().setJavaScriptEnabled(true); + webView.getSettings().setDomStorageEnabled(true); + Intent intent = getIntent(); if (intent != null && Intent.ACTION_VIEW.equals(intent.getAction())) { Uri data = intent.getData(); @@ -61,4 +68,14 @@ public class MainActivity extends BridgeActivity { super.onPause(); CookieManager.getInstance().flush(); } + + @Override + public void onBackPressed() { + WebView webView = getBridge().getWebView(); + if (webView.canGoBack()) { + webView.goBack(); + } else { + super.onBackPressed(); // Default behavior, which minimizes the app + } + } } diff --git a/capacitor.config.json b/capacitor.config.json index 21085d2b..585ff21c 100644 --- a/capacitor.config.json +++ b/capacitor.config.json @@ -3,7 +3,7 @@ "appName": "Coinos", "server": { "hostname": "coinos.io", - "url": "https://coinos.io" + "url": "https://coinos.io/start" }, "android": { "webContentsDebuggingEnabled": true, diff --git a/src/routes/(app)/+layout.server.ts b/src/routes/(app)/+layout.server.ts index ef25388d..e28d8b56 100644 --- a/src/routes/(app)/+layout.server.ts +++ b/src/routes/(app)/+layout.server.ts @@ -46,5 +46,6 @@ export async function load({ cookies, request, url, params }) { } const theme = cookies.get("theme") || "light"; + return { user, token, subject, theme }; } diff --git a/src/routes/(app)/+layout.svelte b/src/routes/(app)/+layout.svelte index d037e5be..af4dbf2c 100644 --- a/src/routes/(app)/+layout.svelte +++ b/src/routes/(app)/+layout.svelte @@ -32,6 +32,7 @@ $effect(() => (theme = $themeStore)); afterNavigate(() => { + document.cookie = `pathname=${$page.url.pathname}; path=/; max-age=86400`; if (user) { preloadData(`/${user.username}`); preloadData(`/${user.username}/receive`); diff --git a/src/routes/+layout.ts b/src/routes/+layout.ts index 79a89d47..af4a6a5c 100644 --- a/src/routes/+layout.ts +++ b/src/routes/+layout.ts @@ -5,6 +5,9 @@ import { addIcon } from "iconify-icon"; import cookies from "js-cookie"; export const ssr = false; +const expires = new Date(); +expires.setSeconds(expires.getSeconds() + 21000000); +const opts = { path: "/", expires }; /** @type {import('@sveltejs/kit').Load} */ export const load = async ({ data }) => { @@ -24,10 +27,8 @@ export const load = async ({ data }) => { ? "dark" : "light"; - const expires = new Date(); - expires.setSeconds(expires.getSeconds() + 21000000); + cookies.set("theme", theme, opts); - cookies.set("theme", theme, { path: "/", expires }); if (theme === "dark") setTimeout(() => themeStore.set(theme), 100); } } diff --git a/src/routes/start/+server.ts b/src/routes/start/+server.ts index 58bca85f..b80fc762 100644 --- a/src/routes/start/+server.ts +++ b/src/routes/start/+server.ts @@ -1,9 +1,11 @@ import { redirect } from "@sveltejs/kit"; export async function GET({ cookies }) { + const pathname = cookies.get("pathname"); const username = cookies.get("username"); if (username) { - redirect(307, `/${username}/receive`); + if (pathname) redirect(307, pathname); + else redirect(307, `/${username}/receive`); } redirect(307, "/"); -- cgit v1.2.3