diff --git a/src/App/Pages/Settings/SettingsHelpPage.cs b/src/App/Pages/Settings/SettingsHelpPage.cs index 151ec9d7c..411f2387f 100644 --- a/src/App/Pages/Settings/SettingsHelpPage.cs +++ b/src/App/Pages/Settings/SettingsHelpPage.cs @@ -13,12 +13,131 @@ namespace Bit.App.Pages public void Init() { - // TODO: hockeyapp feedback, link to website help + var emailCell = new ExtendedTextCell + { + Text = "Email Us", + ShowDisclousure = true + }; + emailCell.Tapped += EmailCell_Tapped; - var stackLayout = new StackLayout { }; + var emailTable = new CustomTableView + { + Root = new TableRoot + { + new TableSection + { + emailCell + } + } + }; - Title = "Help and Support"; - Content = stackLayout; + var emailLabel = new CustomLabel(this) + { + Text = "Email us directly to get help or leave feedback." + }; + + var websiteCell = new ExtendedTextCell + { + Text = "Visit Our Website", + ShowDisclousure = true + }; + websiteCell.Tapped += WebsiteCell_Tapped; + + var websiteTable = new CustomTableView + { + NoHeader = true, + Root = new TableRoot + { + new TableSection + { + websiteCell + } + } + }; + + var websiteLabel = new CustomLabel(this) + { + Text = "Visit our website to get help, news, email us, and/or learn more about how to use bitwarden." + }; + + var bugCell = new ExtendedTextCell + { + Text = "File a Bug Report", + ShowDisclousure = true + }; + bugCell.Tapped += BugCell_Tapped; + + var bugTable = new CustomTableView + { + NoHeader = true, + Root = new TableRoot + { + new TableSection + { + bugCell + } + } + }; + + var bugLabel = new CustomLabel(this) + { + Text = "Open an issue at our GitHub repository." + }; + + var stackLayout = new StackLayout + { + Children = { emailTable, emailLabel, websiteTable, websiteLabel, bugTable, bugLabel }, + Spacing = 0 + }; + + stackLayout.LayoutChanged += (sender, args) => + { + websiteLabel.WidthRequest = stackLayout.Bounds.Width - websiteLabel.Bounds.Left * 2; + emailLabel.WidthRequest = stackLayout.Bounds.Width - emailLabel.Bounds.Left * 2; + bugLabel.WidthRequest = stackLayout.Bounds.Width - bugLabel.Bounds.Left * 2; + }; + + Title = "Help and Feedback"; + Content = new ScrollView { Content = stackLayout }; + } + + private void EmailCell_Tapped(object sender, EventArgs e) + { + Device.OpenUri(new Uri("mailto:hello@bitwarden.com")); + } + + private void WebsiteCell_Tapped(object sender, EventArgs e) + { + Device.OpenUri(new Uri("https://bitwarden.com")); + } + + private void BugCell_Tapped(object sender, EventArgs e) + { + Device.OpenUri(new Uri("https://github.com/bitwarden/mobile")); + } + + private class CustomTableView : ExtendedTableView + { + public CustomTableView() + { + Intent = TableIntent.Settings; + EnableScrolling = false; + HasUnevenRows = true; + EnableSelection = true; + VerticalOptions = LayoutOptions.Start; + NoFooter = true; + } + } + + private class CustomLabel : Label + { + public CustomLabel(ContentPage page) + { + LineBreakMode = LineBreakMode.WordWrap; + FontSize = Device.GetNamedSize(NamedSize.Small, typeof(Label)); + Style = (Style)Application.Current.Resources["text-muted"]; + Margin = new Thickness(15, (page.IsLandscape() ? 5 : 0), 15, 25); + } } } } diff --git a/src/App/Pages/Settings/SettingsPage.cs b/src/App/Pages/Settings/SettingsPage.cs index 00b23f4f4..bae6d2667 100644 --- a/src/App/Pages/Settings/SettingsPage.cs +++ b/src/App/Pages/Settings/SettingsPage.cs @@ -110,14 +110,14 @@ namespace Bit.App.Pages var helpCell = new ExtendedTextCell { - Text = "Help and Support", + Text = "Help and Feedback", ShowDisclousure = true }; helpCell.Tapped += HelpCell_Tapped; var rateCell = new ExtendedTextCell { - Text = "Rate bitwarden", + Text = "Rate the App", ShowDisclousure = true }; rateCell.Tapped += RateCell_Tapped; @@ -153,8 +153,8 @@ namespace Bit.App.Pages new TableSection("Other") { helpCell, - aboutCell, - rateCell + rateCell, + aboutCell } } };