mirror of
https://github.com/bitwarden/android.git
synced 2024-12-25 02:18:27 +03:00
new tab page from code
This commit is contained in:
parent
df802152d7
commit
4f4c6064db
8 changed files with 75 additions and 68 deletions
|
@ -68,9 +68,6 @@
|
||||||
<Compile Update="Pages\Vault\GroupingsPage\GroupingsPage.xaml.cs">
|
<Compile Update="Pages\Vault\GroupingsPage\GroupingsPage.xaml.cs">
|
||||||
<DependentUpon>GroupingsPage.xaml</DependentUpon>
|
<DependentUpon>GroupingsPage.xaml</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Update="Pages\TabsPage.xaml.cs">
|
|
||||||
<DependentUpon>TabsPage.xaml</DependentUpon>
|
|
||||||
</Compile>
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
using System;
|
using System;
|
||||||
|
using System.Threading.Tasks;
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
|
|
||||||
namespace Bit.App.Pages
|
namespace Bit.App.Pages
|
||||||
|
@ -6,17 +7,15 @@ namespace Bit.App.Pages
|
||||||
public partial class GeneratorPage : BaseContentPage
|
public partial class GeneratorPage : BaseContentPage
|
||||||
{
|
{
|
||||||
private GeneratorPageViewModel _vm;
|
private GeneratorPageViewModel _vm;
|
||||||
|
private readonly bool _fromTabPage;
|
||||||
private readonly Action<string> _selectAction;
|
private readonly Action<string> _selectAction;
|
||||||
|
|
||||||
public GeneratorPage()
|
public GeneratorPage(bool fromTabPage, Action<string> selectAction = null)
|
||||||
: this(null)
|
|
||||||
{ }
|
|
||||||
|
|
||||||
public GeneratorPage(Action<string> selectAction)
|
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
_vm = BindingContext as GeneratorPageViewModel;
|
_vm = BindingContext as GeneratorPageViewModel;
|
||||||
_vm.Page = this;
|
_vm.Page = this;
|
||||||
|
_fromTabPage = fromTabPage;
|
||||||
_selectAction = selectAction;
|
_selectAction = selectAction;
|
||||||
if(selectAction == null)
|
if(selectAction == null)
|
||||||
{
|
{
|
||||||
|
@ -24,10 +23,18 @@ namespace Bit.App.Pages
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task InitAsync()
|
||||||
|
{
|
||||||
|
await _vm.InitAsync();
|
||||||
|
}
|
||||||
|
|
||||||
protected async override void OnAppearing()
|
protected async override void OnAppearing()
|
||||||
{
|
{
|
||||||
base.OnAppearing();
|
base.OnAppearing();
|
||||||
await _vm.InitAsync();
|
if(!_fromTabPage)
|
||||||
|
{
|
||||||
|
await InitAsync();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void Regenerate_Clicked(object sender, EventArgs e)
|
private async void Regenerate_Clicked(object sender, EventArgs e)
|
||||||
|
|
48
src/App/Pages/TabsPage.cs
Normal file
48
src/App/Pages/TabsPage.cs
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
using Bit.App.Resources;
|
||||||
|
using Xamarin.Forms;
|
||||||
|
|
||||||
|
namespace Bit.App.Pages
|
||||||
|
{
|
||||||
|
public class TabsPage : TabbedPage
|
||||||
|
{
|
||||||
|
public TabsPage()
|
||||||
|
{
|
||||||
|
var groupingsPage = new NavigationPage(new GroupingsPage())
|
||||||
|
{
|
||||||
|
Title = AppResources.MyVault,
|
||||||
|
Icon = "lock.png"
|
||||||
|
};
|
||||||
|
Children.Add(groupingsPage);
|
||||||
|
|
||||||
|
var generatorPage = new NavigationPage(new GeneratorPage(true, null))
|
||||||
|
{
|
||||||
|
Title = AppResources.Generator,
|
||||||
|
Icon = "refresh.png"
|
||||||
|
};
|
||||||
|
Children.Add(generatorPage);
|
||||||
|
|
||||||
|
var settingsPage = new NavigationPage(new SettingsPage())
|
||||||
|
{
|
||||||
|
Title = AppResources.Settings,
|
||||||
|
Icon = "cogs.png"
|
||||||
|
};
|
||||||
|
Children.Add(settingsPage);
|
||||||
|
|
||||||
|
Xamarin.Forms.PlatformConfiguration.AndroidSpecific.TabbedPage.SetToolbarPlacement(this,
|
||||||
|
Xamarin.Forms.PlatformConfiguration.AndroidSpecific.ToolbarPlacement.Bottom);
|
||||||
|
Xamarin.Forms.PlatformConfiguration.AndroidSpecific.TabbedPage.SetIsSwipePagingEnabled(this, false);
|
||||||
|
Xamarin.Forms.PlatformConfiguration.AndroidSpecific.TabbedPage.SetIsSmoothScrollEnabled(this, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected async override void OnCurrentPageChanged()
|
||||||
|
{
|
||||||
|
if(CurrentPage is NavigationPage navPage)
|
||||||
|
{
|
||||||
|
if(navPage.RootPage is GeneratorPage genPage)
|
||||||
|
{
|
||||||
|
await genPage.InitAsync();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,40 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8" ?>
|
|
||||||
<TabbedPage
|
|
||||||
xmlns="http://xamarin.com/schemas/2014/forms"
|
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
|
||||||
x:Class="Bit.App.Pages.TabsPage"
|
|
||||||
xmlns:pages="clr-namespace:Bit.App.Pages"
|
|
||||||
xmlns:android="clr-namespace:Xamarin.Forms.PlatformConfiguration.AndroidSpecific;assembly=Xamarin.Forms.Core"
|
|
||||||
android:TabbedPage.ToolbarPlacement="Bottom"
|
|
||||||
android:TabbedPage.IsSwipePagingEnabled="False">
|
|
||||||
|
|
||||||
<TabbedPage.Children>
|
|
||||||
<NavigationPage Title="My Vault">
|
|
||||||
<NavigationPage.Icon>
|
|
||||||
<FileImageSource File="lock.png"></FileImageSource>
|
|
||||||
</NavigationPage.Icon>
|
|
||||||
<x:Arguments>
|
|
||||||
<pages:GroupingsPage />
|
|
||||||
</x:Arguments>
|
|
||||||
</NavigationPage>
|
|
||||||
|
|
||||||
<NavigationPage Title="Generator">
|
|
||||||
<NavigationPage.Icon>
|
|
||||||
<FileImageSource File="refresh.png"></FileImageSource>
|
|
||||||
</NavigationPage.Icon>
|
|
||||||
<x:Arguments>
|
|
||||||
<pages:GeneratorPage />
|
|
||||||
</x:Arguments>
|
|
||||||
</NavigationPage>
|
|
||||||
|
|
||||||
<NavigationPage Title="Settings">
|
|
||||||
<NavigationPage.Icon>
|
|
||||||
<FileImageSource File="cogs.png"></FileImageSource>
|
|
||||||
</NavigationPage.Icon>
|
|
||||||
<x:Arguments>
|
|
||||||
<pages:SettingsPage />
|
|
||||||
</x:Arguments>
|
|
||||||
</NavigationPage>
|
|
||||||
</TabbedPage.Children>
|
|
||||||
|
|
||||||
</TabbedPage>
|
|
|
@ -1,18 +0,0 @@
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using Xamarin.Forms;
|
|
||||||
using Xamarin.Forms.Xaml;
|
|
||||||
|
|
||||||
namespace Bit.App.Pages
|
|
||||||
{
|
|
||||||
public partial class TabsPage : TabbedPage
|
|
||||||
{
|
|
||||||
public TabsPage()
|
|
||||||
{
|
|
||||||
InitializeComponent();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -429,7 +429,7 @@ namespace Bit.App.Pages
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var page = new GeneratorPage(async (password) =>
|
var page = new GeneratorPage(false, async (password) =>
|
||||||
{
|
{
|
||||||
Cipher.Login.Password = password;
|
Cipher.Login.Password = password;
|
||||||
TriggerCipherChanged();
|
TriggerCipherChanged();
|
||||||
|
|
9
src/App/Resources/AppResources.Designer.cs
generated
9
src/App/Resources/AppResources.Designer.cs
generated
|
@ -1698,6 +1698,15 @@ namespace Bit.App.Resources {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Generator.
|
||||||
|
/// </summary>
|
||||||
|
public static string Generator {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("Generator", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Get your master password hint.
|
/// Looks up a localized string similar to Get your master password hint.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -1460,4 +1460,8 @@
|
||||||
<value>Clear</value>
|
<value>Clear</value>
|
||||||
<comment>To clear something out. example: To clear browser history.</comment>
|
<comment>To clear something out. example: To clear browser history.</comment>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Generator" xml:space="preserve">
|
||||||
|
<value>Generator</value>
|
||||||
|
<comment>Short for "Password Generator"</comment>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
Loading…
Reference in a new issue