cmd/tailscale: make intro screen scrollable

Include the version code bump as well. Oops.

Updates tailscale/tailscale#488

Signed-off-by: Elias Naur <mail@eliasnaur.com>
pull/3/head
Elias Naur 5 years ago
parent 1003774193
commit f25b5bbcba

@ -25,7 +25,7 @@ android {
defaultConfig { defaultConfig {
minSdkVersion 23 minSdkVersion 23
targetSdkVersion 29 targetSdkVersion 29
versionCode 15 versionCode 16
versionName System.getenv("VERSION") versionName System.getenv("VERSION")
} }
compileOptions { compileOptions {

@ -57,6 +57,7 @@ type UI struct {
peers []widget.Clickable peers []widget.Clickable
intro struct { intro struct {
list layout.List
start widget.Clickable start widget.Clickable
show bool show bool
} }
@ -164,6 +165,7 @@ func newUI(store *stateStore) (*UI, error) {
ui.icons.more.Color = rgb(white) ui.icons.more.Color = rgb(white)
ui.icons.search.Color = ui.theme.Color.Hint ui.icons.search.Color = ui.theme.Color.Hint
ui.root.Axis = layout.Vertical ui.root.Axis = layout.Vertical
ui.intro.list.Axis = layout.Vertical
ui.search.SingleLine = true ui.search.SingleLine = true
return ui, nil return ui, nil
} }
@ -300,7 +302,7 @@ func (ui *UI) layout(gtx layout.Context, sysIns system.Insets, state *clientStat
ui.store.WriteBool(keyShowIntro, false) ui.store.WriteBool(keyShowIntro, false)
ui.intro.show = false ui.intro.show = false
} }
ui.layoutIntro(gtx) ui.layoutIntro(gtx, sysIns)
} }
return ui.events return ui.events
@ -436,50 +438,57 @@ func (ui *UI) layoutDisconnected(gtx layout.Context) layout.Dimensions {
} }
// layoutIntro lays out the intro page with the logo and terms. // layoutIntro lays out the intro page with the logo and terms.
func (ui *UI) layoutIntro(gtx layout.Context) { func (ui *UI) layoutIntro(gtx layout.Context, sysIns system.Insets) {
fill{rgb(0x232323)}.Layout(gtx, gtx.Constraints.Max) fill{rgb(0x232323)}.Layout(gtx, gtx.Constraints.Max)
layout.Flex{Axis: layout.Vertical}.Layout(gtx, ui.intro.list.Layout(gtx, 1, func(gtx C, idx int) D {
// 9 dot logo. return layout.Flex{Axis: layout.Vertical}.Layout(gtx,
layout.Rigid(func(gtx C) D { // 9 dot logo.
return layout.Inset{Top: unit.Dp(80), Bottom: unit.Dp(48)}.Layout(gtx, func(gtx C) D { layout.Rigid(func(gtx C) D {
return layout.Inset{Top: unit.Dp(80), Bottom: unit.Dp(48)}.Layout(gtx, func(gtx C) D {
return layout.N.Layout(gtx, func(gtx C) D {
sz := gtx.Px(unit.Dp(72))
drawLogo(gtx.Ops, sz)
return layout.Dimensions{Size: image.Pt(sz, sz)}
})
})
}),
// "tailscale".
layout.Rigid(func(gtx C) D {
return layout.N.Layout(gtx, func(gtx C) D { return layout.N.Layout(gtx, func(gtx C) D {
sz := gtx.Px(unit.Dp(72)) return drawImage(gtx, ui.icons.logo, unit.Dp(200))
drawLogo(gtx.Ops, sz)
return layout.Dimensions{Size: image.Pt(sz, sz)}
}) })
}) }),
}), // Terms.
// "tailscale". layout.Rigid(func(gtx C) D {
layout.Rigid(func(gtx C) D { return layout.Inset{
return layout.N.Layout(gtx, func(gtx C) D { Top: unit.Dp(48),
return drawImage(gtx, ui.icons.logo, unit.Dp(200)) Left: unit.Dp(32),
}) Right: unit.Dp(32),
}), }.Layout(gtx, func(gtx C) D {
// Terms. terms := material.Body2(ui.theme, termsText)
layout.Rigid(func(gtx C) D { terms.Color = rgb(0xbfbfbf)
return layout.Inset{ terms.Alignment = text.Middle
Top: unit.Dp(48), return terms.Layout(gtx)
Left: unit.Dp(32), })
Right: unit.Dp(32), }),
}.Layout(gtx, func(gtx C) D { // "Get started".
terms := material.Body2(ui.theme, termsText) layout.Rigid(func(gtx C) D {
terms.Color = rgb(0xbfbfbf) return layout.Inset{
terms.Alignment = text.Middle Top: unit.Dp(16),
return terms.Layout(gtx) Left: unit.Dp(16),
}) Right: unit.Dp(16),
}), Bottom: unit.Add(gtx.Metric, sysIns.Bottom),
// "Get started". }.Layout(gtx, func(gtx C) D {
layout.Rigid(func(gtx C) D { start := material.Button(ui.theme, &ui.intro.start, "Get Started")
return layout.UniformInset(unit.Dp(16)).Layout(gtx, func(gtx C) D { start.Inset = layout.UniformInset(unit.Dp(16))
start := material.Button(ui.theme, &ui.intro.start, "Get Started") start.CornerRadius = unit.Dp(16)
start.Inset = layout.UniformInset(unit.Dp(16)) start.Background = rgb(0x496495)
start.CornerRadius = unit.Dp(16) start.TextSize = unit.Sp(20)
start.Background = rgb(0x496495) return start.Layout(gtx)
start.TextSize = unit.Sp(20) })
return start.Layout(gtx) }),
}) )
}), })
)
} }
// menuClicked is like btn.Clicked, but also closes the menu if true. // menuClicked is like btn.Clicked, but also closes the menu if true.

Loading…
Cancel
Save