bitwarden-android/src/App/Pages/SettingsPage.cs

142 lines
4 KiB
C#
Raw Normal View History

2016-05-03 00:50:16 +03:00
using System;
using Bit.App.Abstractions;
using Bit.App.Resources;
2016-05-03 00:50:16 +03:00
using Xamarin.Forms;
using XLabs.Ioc;
2016-05-13 04:30:02 +03:00
using Bit.App.Controls;
using Acr.UserDialogs;
2016-05-03 00:50:16 +03:00
namespace Bit.App.Pages
{
public class SettingsPage : ContentPage
{
private readonly IAuthService _authService;
private readonly IUserDialogs _userDialogs;
2016-05-03 00:50:16 +03:00
public SettingsPage()
{
_authService = Resolver.Resolve<IAuthService>();
_userDialogs = Resolver.Resolve<IUserDialogs>();
Init();
}
private void Init()
{
2016-05-19 06:55:30 +03:00
var touchIdCell = new ExtendedSwitchCell
{
Text = "Use Touch ID"
};
2016-05-19 06:55:30 +03:00
touchIdCell.OnChanged += TouchIdCell_Changed;
2016-05-19 06:55:30 +03:00
var lockOnExitCell = new ExtendedSwitchCell
{
Text = "Lock Immediately On Exit"
};
2016-05-19 06:55:30 +03:00
lockOnExitCell.OnChanged += LockOnExitCell_Changed;
var changeMasterPasswordCell = new ExtendedTextCell
{
2016-05-19 06:55:30 +03:00
Text = "Change Master Password",
TextColor = Color.FromHex("333333")
};
changeMasterPasswordCell.Tapped += ChangeMasterPasswordCell_Tapped;
var foldersCell = new ExtendedTextCell
{
Text = "Folders",
2016-05-19 06:55:30 +03:00
ShowDisclousure = true,
TextColor = Color.FromHex("333333")
};
foldersCell.Tapped += FoldersCell_Tapped;
var lockCell = new ExtendedTextCell
{
2016-05-19 06:55:30 +03:00
Text = "Lock",
TextColor = Color.FromHex("333333")
};
lockCell.Tapped += LockCell_Tapped;
var logOutCell = new ExtendedTextCell
{
2016-05-19 06:55:30 +03:00
Text = "Log Out",
TextColor = Color.FromHex("333333")
};
logOutCell.Tapped += LogOutCell_Tapped;
2016-05-13 04:30:02 +03:00
var table = new ExtendedTableView
{
EnableScrolling = true,
2016-05-12 00:30:09 +03:00
Intent = TableIntent.Menu,
Root = new TableRoot
{
new TableSection("Security")
{
touchIdCell,
lockOnExitCell,
changeMasterPasswordCell
},
new TableSection("Manage Folders")
{
foldersCell
},
new TableSection("Current Session")
{
lockCell,
logOutCell
}
}
};
2016-05-03 00:50:16 +03:00
var scrollView = new ScrollView
2016-05-03 00:50:16 +03:00
{
Content = table
2016-05-03 00:50:16 +03:00
};
Title = AppResources.Settings;
Content = table;
2016-05-03 00:50:16 +03:00
}
private void LockCell_Tapped(object sender, EventArgs e)
{
}
private async void LogOutCell_Tapped(object sender, EventArgs e)
{
if(!await _userDialogs.ConfirmAsync("Are you sure you want to log out?", null, AppResources.Yes, AppResources.Cancel))
{
return;
}
_authService.LogOut();
Application.Current.MainPage = new LoginNavigationPage();
}
2016-05-19 06:55:30 +03:00
private void LockOnExitCell_Changed(object sender, EventArgs e)
{
}
private async void ChangeMasterPasswordCell_Tapped(object sender, EventArgs e)
{
if(!await _userDialogs.ConfirmAsync("You can change your master password on the bitwarden.com web vault. Do you want to visit the website now?", null, AppResources.Yes, AppResources.Cancel))
{
return;
}
Device.OpenUri(new Uri("https://vault.bitwarden.com"));
}
2016-05-19 06:55:30 +03:00
private void TouchIdCell_Changed(object sender, EventArgs e)
{
2016-05-19 05:53:34 +03:00
}
private void FoldersCell_Tapped(object sender, EventArgs e)
{
Navigation.PushAsync(new SettingsListFoldersPage());
}
2016-05-03 00:50:16 +03:00
}
}