From 4443131516ad366e3efc89eeef0686c38a7e28f1 Mon Sep 17 00:00:00 2001 From: Pierre HUBERT Date: Mon, 21 Jul 2025 19:48:32 +0200 Subject: [PATCH] Can download APK from web app --- moneymgr_backend/src/app_config.rs | 8 ++++++++ .../src/controllers/server_controller.rs | 2 ++ moneymgr_web/src/api/ServerApi.ts | 1 + moneymgr_web/src/widgets/MoneyWebAppBar.tsx | 14 ++++++++++++++ 4 files changed, 25 insertions(+) diff --git a/moneymgr_backend/src/app_config.rs b/moneymgr_backend/src/app_config.rs index fca7d52..e9c764b 100644 --- a/moneymgr_backend/src/app_config.rs +++ b/moneymgr_backend/src/app_config.rs @@ -126,6 +126,14 @@ pub struct AppConfig { /// Redis password #[clap(long, env, default_value = "secretredis")] redis_password: String, + + /// Application download URL + #[clap( + long, + env, + default_value = "https://gitea.communiquons.org/pierre/MoneyMgr/releases/download/latest/moneymgr_mobile_arm64-v8a.apk" + )] + pub apk_download_url: String, } lazy_static::lazy_static! { diff --git a/moneymgr_backend/src/controllers/server_controller.rs b/moneymgr_backend/src/controllers/server_controller.rs index 8078184..d395e5e 100644 --- a/moneymgr_backend/src/controllers/server_controller.rs +++ b/moneymgr_backend/src/controllers/server_controller.rs @@ -70,6 +70,7 @@ impl Default for ServerConstraints { struct ServerConfig { auth_disabled: bool, oidc_provider_name: &'static str, + apk_download_url: &'static str, accounts_types: &'static [AccountTypeDesc], constraints: ServerConstraints, } @@ -79,6 +80,7 @@ impl Default for ServerConfig { Self { auth_disabled: AppConfig::get().is_auth_disabled(), oidc_provider_name: AppConfig::get().openid_provider().name, + apk_download_url: AppConfig::get().apk_download_url.as_str(), constraints: Default::default(), accounts_types: &ACCOUNT_TYPES, } diff --git a/moneymgr_web/src/api/ServerApi.ts b/moneymgr_web/src/api/ServerApi.ts index 4abf9f4..b3b7d55 100644 --- a/moneymgr_web/src/api/ServerApi.ts +++ b/moneymgr_web/src/api/ServerApi.ts @@ -3,6 +3,7 @@ import { APIClient } from "./ApiClient"; export interface ServerConfig { auth_disabled: boolean; oidc_provider_name: string; + apk_download_url: string; accounts_types: AccountType[]; constraints: ServerConstraints; } diff --git a/moneymgr_web/src/widgets/MoneyWebAppBar.tsx b/moneymgr_web/src/widgets/MoneyWebAppBar.tsx index 5f1800d..fab9ad1 100644 --- a/moneymgr_web/src/widgets/MoneyWebAppBar.tsx +++ b/moneymgr_web/src/widgets/MoneyWebAppBar.tsx @@ -1,5 +1,6 @@ import { mdiApi, mdiCash } from "@mdi/js"; import Icon from "@mdi/react"; +import AndroidIcon from "@mui/icons-material/Android"; import CloudDownloadIcon from "@mui/icons-material/CloudDownload"; import LogoutIcon from "@mui/icons-material/Logout"; import SettingsIcon from "@mui/icons-material/Settings"; @@ -10,6 +11,7 @@ import MenuItem from "@mui/material/MenuItem"; import Toolbar from "@mui/material/Toolbar"; import Typography from "@mui/material/Typography"; import * as React from "react"; +import { ServerApi } from "../api/ServerApi"; import { useAuthInfo } from "./BaseAuthenticatedPage"; import { DarkThemeButton } from "./DarkThemeButtonWidget"; import { PublicModeButton } from "./PublicModeButtonWidget"; @@ -100,6 +102,18 @@ export function MoneyWebAppBar(p: { + {/* APK download */} + + + + + + + Mobile Application + + + + {/* Sign out */}