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

138 lines
3.8 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()
{
var touchIdCell = new SwitchCell
{
Text = "Use Touch ID"
};
touchIdCell.Tapped += TouchIdCell_Tapped;
var lockOnExitCell = new SwitchCell
{
Text = "Lock Immediately On Exit"
};
lockOnExitCell.Tapped += LockOnExitCell_Tapped;
var changeMasterPasswordCell = new ExtendedTextCell
{
Text = "Change Master Password"
};
changeMasterPasswordCell.Tapped += ChangeMasterPasswordCell_Tapped;
var foldersCell = new ExtendedTextCell
{
Text = "Folders",
ShowDisclousure = true
};
foldersCell.Tapped += FoldersCell_Tapped;
var lockCell = new ExtendedTextCell
{
Text = "Lock"
};
lockCell.Tapped += LockCell_Tapped;
var logOutCell = new ExtendedTextCell
{
Text = "Log Out"
};
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();
}
private void LockOnExitCell_Tapped(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"));
}
private void TouchIdCell_Tapped(object sender, EventArgs e)
{
2016-05-19 04:45:13 +03:00
Navigation.PushAsync(new TestListPage());
}
private void FoldersCell_Tapped(object sender, EventArgs e)
{
Navigation.PushAsync(new SettingsListFoldersPage());
}
2016-05-03 00:50:16 +03:00
}
}