Skip to content

Commit

Permalink
Adds hide balance button (#646)
Browse files Browse the repository at this point in the history
* Adds hide balance button

* Moves Hide balance to settings page

* Implements a hide/show balance icon button on main page

* Removes USD balance when balance is hidden

* Resolves HideBalanceConfigKey string value

* add tooltip to hide balance icon

* fix hidden balance tooltip hover

* comment out hidden balance label/tooltip

Co-authored-by: dreacot <kennedyizuegbu@yahoo.com>
Co-authored-by: sirmorrison <edonomorrison@gmail.com>
  • Loading branch information
3 people committed Oct 21, 2021
1 parent 924476a commit e526b8b
Show file tree
Hide file tree
Showing 2 changed files with 76 additions and 7 deletions.
4 changes: 3 additions & 1 deletion ui/load/load.go
Expand Up @@ -37,7 +37,7 @@ type Receiver struct {
type Icons struct {
ContentAdd, NavigationCheck, NavigationMore, ActionCheckCircle, ActionInfo, NavigationArrowBack,
NavigationArrowForward, ActionCheck, ChevronRight, NavigationCancel, NavMoreIcon,
ImageBrightness1, ContentClear, DropDownIcon, Cached, ContentRemove *widget.Icon
ImageBrightness1, ContentClear, DropDownIcon, Cached, ContentRemove, ConcealIcon, RevealIcon *widget.Icon

OverviewIcon, OverviewIconInactive, WalletIcon, WalletIconInactive,
ReceiveIcon, Transferred, TransactionsIcon, TransactionsIconInactive, SendIcon, MoreIcon, MoreIconInactive,
Expand Down Expand Up @@ -151,6 +151,8 @@ func loadIcons() Icons {
DropDownIcon: decredmaterial.MustIcon(widget.NewIcon(icons.NavigationArrowDropDown)),
Cached: decredmaterial.MustIcon(widget.NewIcon(icons.ActionCached)),
ContentRemove: decredmaterial.MustIcon(widget.NewIcon(icons.ContentRemove)),
ConcealIcon: decredmaterial.MustIcon(widget.NewIcon(icons.ActionVisibility)),
RevealIcon: decredmaterial.MustIcon(widget.NewIcon(icons.ActionVisibilityOff)),

OverviewIcon: decredmaterial.NewImage(decredIcons["overview"]),
OverviewIconInactive: decredmaterial.NewImage(decredIcons["overview_inactive"]),
Expand Down
79 changes: 73 additions & 6 deletions ui/page/main_page.go
Expand Up @@ -28,13 +28,21 @@ const (
TicketsNavID
ProposalsNavID
MoreNavID

HideBalanceConfigKey = "hide_balance"
)

var (
NavDrawerWidth = unit.Value{U: unit.UnitDp, V: 160}
NavDrawerMinimizedWidth = unit.Value{U: unit.UnitDp, V: 72}
)

type HideBalanceItem struct {
hideBalanceButton decredmaterial.IconButton
tooltip *decredmaterial.Tooltip
tooltipLabel decredmaterial.Label
}

type NavHandler struct {
Clickable *widget.Clickable
Image *decredmaterial.Image
Expand All @@ -50,6 +58,8 @@ type MainPage struct {

autoSync bool

hideBalanceItem HideBalanceItem

currentPage load.Page
pageBackStack []load.Page
sendPage *send.Page // reuse value to keep data persistent onresume.
Expand All @@ -59,15 +69,22 @@ type MainPage struct {
usdExchangeSet bool
totalBalance dcrutil.Amount
totalBalanceUSD string

isBalanceHidden bool
}

func NewMainPage(l *load.Load) *MainPage {

mp := &MainPage{
Load: l,
autoSync: true,
}

mp.hideBalanceItem.hideBalanceButton = mp.Theme.PlainIconButton(mp.Icons.ConcealIcon)
mp.hideBalanceItem.hideBalanceButton.Color = mp.Theme.Color.Gray3
mp.hideBalanceItem.hideBalanceButton.Size = unit.Dp(19)
mp.hideBalanceItem.hideBalanceButton.Inset = layout.UniformInset(values.MarginPadding4)
mp.hideBalanceItem.tooltip = mp.Theme.Tooltip()

// init shared page functions
toggleSync := func() {
if mp.WL.MultiWallet.IsConnectedToDecredNetwork() {
Expand Down Expand Up @@ -329,6 +346,12 @@ func (mp *MainPage) Handle() {
mp.changeFragment(pg)
}
}

mp.isBalanceHidden = mp.WL.MultiWallet.ReadBoolConfigValueForKey(HideBalanceConfigKey, false)
for mp.hideBalanceItem.hideBalanceButton.Button.Clicked() {
mp.isBalanceHidden = !mp.isBalanceHidden
mp.WL.MultiWallet.SetBoolConfigValueForKey(HideBalanceConfigKey, mp.isBalanceHidden)
}
}

func (mp *MainPage) OnClose() {
Expand Down Expand Up @@ -435,9 +458,30 @@ func (mp *MainPage) Layout(gtx layout.Context) layout.Dimensions {
)
}),
layout.Stacked(func(gtx C) D {
// TODO: hidden balance tip hover layout
// if mp.hideBalanceItem.hideBalanceButton.Button.Hovered() {
// lm := values.MarginPadding280
// if mp.hideBalanceItem.tooltipLabel.Text == "Show Balance" {
// lm = values.MarginPadding168
// }

// return layout.Inset{Top: values.MarginPadding50, Left: lm}.Layout(gtx, func(gtx C) D {
// card := mp.Theme.Card()
// card.Color = mp.Theme.Color.Surface
// card.Border = true
// card.Radius = decredmaterial.Radius(5)
// card.BorderParam.CornerRadius = values.MarginPadding5
// return card.Layout(gtx, func(gtx C) D {
// return components.Container{
// Padding: layout.UniformInset(values.MarginPadding5),
// }.Layout(gtx, mp.hideBalanceItem.tooltipLabel.Layout)
// })
// })
// }

// global toasts. Stack toast on all pages and contents
//TODO: show toasts here
return layout.Dimensions{}
return D{}

}),
)
Expand Down Expand Up @@ -472,6 +516,16 @@ func (mp *MainPage) LayoutUSDBalance(gtx layout.Context) layout.Dimensions {
)
}

func (mp *MainPage) totalDCRBalance(gtx layout.Context) layout.Dimensions {
if mp.isBalanceHidden {
hiddenBalanceText := mp.Theme.Label(values.TextSize18.Scale(0.8), "**********DCR")
return layout.Inset{Bottom: values.MarginPadding0, Top: values.MarginPadding5}.Layout(gtx, func(gtx C) D {
return hiddenBalanceText.Layout(gtx)
})
}
return components.LayoutBalance(gtx, mp.Load, mp.totalBalance.String())
}

func (mp *MainPage) LayoutTopBar(gtx layout.Context) layout.Dimensions {
return decredmaterial.LinearLayout{
Width: decredmaterial.MatchParent,
Expand Down Expand Up @@ -507,12 +561,25 @@ func (mp *MainPage) LayoutTopBar(gtx layout.Context) layout.Dimensions {
})
}),
layout.Rigid(func(gtx C) D {
return layout.Center.Layout(gtx, func(gtx C) D {
return components.LayoutBalance(gtx, mp.Load, mp.totalBalance.String())
})
return mp.totalDCRBalance(gtx)
}),
layout.Rigid(func(gtx C) D {
if !mp.isBalanceHidden {
return mp.LayoutUSDBalance(gtx)
}
return layout.Dimensions{}
}),
layout.Rigid(func(gtx C) D {
return mp.LayoutUSDBalance(gtx)
mp.hideBalanceItem.tooltipLabel = mp.Theme.Caption("Hide Balance")
mp.hideBalanceItem.hideBalanceButton.Icon = mp.Icons.RevealIcon
if mp.isBalanceHidden {
mp.hideBalanceItem.tooltipLabel.Text = "Show Balance"
mp.hideBalanceItem.hideBalanceButton.Icon = mp.Icons.ConcealIcon
}
return layout.Inset{
Top: values.MarginPadding1,
Left: values.MarginPadding9,
}.Layout(gtx, mp.hideBalanceItem.hideBalanceButton.Layout)
}),
)
})
Expand Down

0 comments on commit e526b8b

Please sign in to comment.