From b843f1f91fdd561146045eb391915d7f7d30fa17 Mon Sep 17 00:00:00 2001 From: "Andres G. Aragoneses" Date: Thu, 18 Jan 2024 15:51:11 +0800 Subject: [PATCH] Frontend.XF: add currency image to Receive Page --- src/GWallet.Frontend.XF/BalancesPage.xaml.fs | 2 +- src/GWallet.Frontend.XF/FrontendHelpers.fs | 24 +++++++++++++++++--- src/GWallet.Frontend.XF/LoadingPage.xaml.fs | 17 +++++--------- src/GWallet.Frontend.XF/ReceivePage.xaml | 4 ++++ src/GWallet.Frontend.XF/ReceivePage.xaml.fs | 14 +++++++++++- 5 files changed, 45 insertions(+), 16 deletions(-) diff --git a/src/GWallet.Frontend.XF/BalancesPage.xaml.fs b/src/GWallet.Frontend.XF/BalancesPage.xaml.fs index c08c66769..7c70af843 100644 --- a/src/GWallet.Frontend.XF/BalancesPage.xaml.fs +++ b/src/GWallet.Frontend.XF/BalancesPage.xaml.fs @@ -244,7 +244,7 @@ type BalancesPage(state: FrontendHelpers.IGlobalAppState, let tapGestureRecognizer = TapGestureRecognizer() tapGestureRecognizer.Tapped.Subscribe(fun _ -> let receivePage () = - ReceivePage(balanceSet.Account, balanceState.UsdRate, self, balanceSet.Widgets) + ReceivePage(balanceSet.Account, readOnly, balanceState.UsdRate, self, balanceSet.Widgets) :> Page FrontendHelpers.SwitchToNewPage self receivePage true ) |> ignore diff --git a/src/GWallet.Frontend.XF/FrontendHelpers.fs b/src/GWallet.Frontend.XF/FrontendHelpers.fs index 825fc1334..2bd392e38 100644 --- a/src/GWallet.Frontend.XF/FrontendHelpers.fs +++ b/src/GWallet.Frontend.XF/FrontendHelpers.fs @@ -32,6 +32,10 @@ type BalanceState = { UsdRate: MaybeCached } +type internal CurrencyImageSize = +| Small = 60 +| Big = 120 + module FrontendHelpers = type IGlobalAppState = @@ -411,11 +415,25 @@ module FrontendHelpers = thisAssemblyName name ImageSource.FromResource(fullyQualifiedResourceNameForLogo, thisAssembly) - let GetSizedImageSource name size = + let internal GetSizedImageSource name (size: int) = let sizedName = SPrintF3 "%s_%ix%i" name size size GetImageSource sizedName - let GetSizedColoredImageSource name color size = + let internal GetSizedColoredImageSource name color (size: CurrencyImageSize) = let sizedColoredName = SPrintF2 "%s_%s" name color - GetSizedImageSource sizedColoredName size + GetSizedImageSource sizedColoredName (int size) + + let internal CreateCurrencyImageSource (currency: Currency) (readOnly: bool) (size: CurrencyImageSize) = + let colour = + if readOnly then + "grey" + else + "red" + let currencyLowerCase = currency.ToString().ToLower() + GetSizedColoredImageSource currencyLowerCase colour size + + let internal CreateCurrencyImage (currency: Currency) (readOnly: bool) (size: CurrencyImageSize) = + let imageSource = CreateCurrencyImageSource currency readOnly size + let currencyLogoImg = Image(Source = imageSource, IsVisible = true) + currencyLogoImg diff --git a/src/GWallet.Frontend.XF/LoadingPage.xaml.fs b/src/GWallet.Frontend.XF/LoadingPage.xaml.fs index 2dd54bca6..76c80dce1 100644 --- a/src/GWallet.Frontend.XF/LoadingPage.xaml.fs +++ b/src/GWallet.Frontend.XF/LoadingPage.xaml.fs @@ -32,16 +32,6 @@ type LoadingPage(state: FrontendHelpers.IGlobalAppState, showLogoFirst: bool) as let readOnlyAccounts = allAccounts.OfType() |> List.ofSeq |> List.map (fun account -> account :> IAccount) - let CreateImage (currency: Currency) (readOnly: bool) = - let colour = - if readOnly then - "grey" - else - "red" - let currencyLowerCase = currency.ToString().ToLower() - let imageSource = FrontendHelpers.GetSizedColoredImageSource currencyLowerCase colour 60 - let currencyLogoImg = Image(Source = imageSource, IsVisible = true) - currencyLogoImg let GetAllCurrencyCases(): seq = seq { for currency in Currency.GetAll() do @@ -51,7 +41,12 @@ type LoadingPage(state: FrontendHelpers.IGlobalAppState, showLogoFirst: bool) as let GetAllImages(): seq<(Currency*bool)*Image> = seq { for currency,readOnly in GetAllCurrencyCases() do - yield (currency,readOnly),(CreateImage currency readOnly) + let currencyLogo = + FrontendHelpers.CreateCurrencyImage + currency + readOnly + CurrencyImageSize.Small + yield (currency, readOnly), currencyLogo } let PreLoadCurrencyImages(): Map = GetAllImages() |> Map.ofSeq diff --git a/src/GWallet.Frontend.XF/ReceivePage.xaml b/src/GWallet.Frontend.XF/ReceivePage.xaml index 845717059..329074a55 100644 --- a/src/GWallet.Frontend.XF/ReceivePage.xaml +++ b/src/GWallet.Frontend.XF/ReceivePage.xaml @@ -10,6 +10,10 @@