mirror of
https://github.com/bitwarden/android.git
synced 2024-12-24 18:08:26 +03:00
Improve the navigation on Windows platforms (#199)
* App: Don't default to modal pushes on Windows On Windows we generally want to avoid modal pushes as that doesn't give us a back arrow on Windows 10. Default to non-modal pushes. Signed-off-by: Alistair Francis <alistair@alistair23.me> * App: LoginPage.cs: Don't add the cancel button on Windows With Windows Phone having a HW back buton and the UWP toolbar now supporting a back button we no longer need a cancel button. Signed-off-by: Alistair Francis <alistair@alistair23.me> * src: Set a icon for UWP cancel buttons We can't always use modal pages and in that case we need to set a icon for UWP otherwise the button can't be seen on the toolbar. Signed-off-by: Alistair Francis <alistair@alistair23.me> * App: Pages: Don't add Cancel/Close button on Windows Signed-off-by: Alistair Francis <alistair@alistair23.me> * Update DismissModalToolBarItem.cs
This commit is contained in:
parent
baf785d9f1
commit
b4e7fd6fa8
15 changed files with 28 additions and 14 deletions
|
@ -1,4 +1,5 @@
|
|||
using Bit.App.Resources;
|
||||
using Bit.App.Utilities;
|
||||
using System;
|
||||
using Xamarin.Forms;
|
||||
|
||||
|
@ -15,13 +16,14 @@ namespace Bit.App.Controls
|
|||
// TODO: init and dispose events from pages
|
||||
InitEvents();
|
||||
Text = text ?? AppResources.Close;
|
||||
Icon = Helpers.ToolbarImage("ion_chevron_left.png");
|
||||
Priority = -1;
|
||||
}
|
||||
|
||||
protected async override void ClickedItem(object sender, EventArgs e)
|
||||
{
|
||||
base.ClickedItem(sender, e);
|
||||
await _page.Navigation.PopModalAsync();
|
||||
await _page.Navigation.PopForDeviceAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -115,7 +115,7 @@ namespace Bit.App.Pages
|
|||
var toolbarItem = new ToolbarItem(AppResources.Save, Helpers.ToolbarImage("envelope.png"), async () => await SaveAsync(),
|
||||
ToolbarItemOrder.Default, 0);
|
||||
|
||||
if(Device.RuntimePlatform == Device.iOS || Device.RuntimePlatform == Device.Windows)
|
||||
if(Device.RuntimePlatform == Device.iOS)
|
||||
{
|
||||
table.RowHeight = table2.RowHeight = -1;
|
||||
table.EstimatedRowHeight = table2.EstimatedRowHeight = 70;
|
||||
|
|
|
@ -102,7 +102,7 @@ namespace Bit.App.Pages
|
|||
|
||||
var scrollView = new ScrollView { Content = layout };
|
||||
|
||||
if(Device.RuntimePlatform == Device.iOS || Device.RuntimePlatform == Device.Windows)
|
||||
if(Device.RuntimePlatform == Device.iOS)
|
||||
{
|
||||
table.RowHeight = -1;
|
||||
table.EstimatedRowHeight = 70;
|
||||
|
|
|
@ -122,7 +122,7 @@ namespace Bit.App.Pages
|
|||
await Register();
|
||||
}, ToolbarItemOrder.Default, 0);
|
||||
|
||||
if(Device.RuntimePlatform == Device.iOS || Device.RuntimePlatform == Device.Windows)
|
||||
if(Device.RuntimePlatform == Device.iOS)
|
||||
{
|
||||
table.RowHeight = table2.RowHeight = -1;
|
||||
table.EstimatedRowHeight = table2.EstimatedRowHeight = 70;
|
||||
|
|
|
@ -68,7 +68,7 @@ namespace Bit.App.Pages
|
|||
Children = { _zxing, _overlay }
|
||||
};
|
||||
|
||||
if(Device.RuntimePlatform == Device.iOS || Device.RuntimePlatform == Device.Windows)
|
||||
if(Device.RuntimePlatform == Device.iOS)
|
||||
{
|
||||
ToolbarItems.Add(new DismissModalToolBarItem(this, AppResources.Close));
|
||||
}
|
||||
|
|
|
@ -205,7 +205,7 @@ namespace Bit.App.Pages
|
|||
VerticalOptions = LayoutOptions.FillAndExpand
|
||||
};
|
||||
|
||||
if(Device.RuntimePlatform == Device.iOS || Device.RuntimePlatform == Device.Windows)
|
||||
if(Device.RuntimePlatform == Device.iOS)
|
||||
{
|
||||
ToolbarItems.Add(new DismissModalToolBarItem(this, AppResources.Close));
|
||||
}
|
||||
|
|
|
@ -87,7 +87,7 @@ namespace Bit.App.Pages
|
|||
}
|
||||
};
|
||||
|
||||
if(Device.RuntimePlatform == Device.iOS || Device.RuntimePlatform == Device.Windows)
|
||||
if(Device.RuntimePlatform == Device.iOS)
|
||||
{
|
||||
table.RowHeight = -1;
|
||||
table.EstimatedRowHeight = 44;
|
||||
|
|
|
@ -170,7 +170,7 @@ namespace Bit.App.Pages
|
|||
|
||||
Title = AppResources.AddItem;
|
||||
Content = Table;
|
||||
if(Device.RuntimePlatform == Device.iOS || Device.RuntimePlatform == Device.Windows)
|
||||
if(Device.RuntimePlatform == Device.iOS)
|
||||
{
|
||||
ToolbarItems.Add(new DismissModalToolBarItem(this, AppResources.Cancel));
|
||||
}
|
||||
|
|
|
@ -191,7 +191,7 @@ namespace Bit.App.Pages
|
|||
ToolbarItems.Add(saveToolBarItem);
|
||||
}
|
||||
|
||||
if(Device.RuntimePlatform == Device.iOS || Device.RuntimePlatform == Device.Windows)
|
||||
if(Device.RuntimePlatform == Device.iOS)
|
||||
{
|
||||
ListView.RowHeight = -1;
|
||||
NewTable.RowHeight = -1;
|
||||
|
|
|
@ -159,7 +159,7 @@ namespace Bit.App.Pages
|
|||
{
|
||||
Content = Table;
|
||||
ToolbarItems.Add(SaveToolbarItem);
|
||||
if(Device.RuntimePlatform == Device.iOS || Device.RuntimePlatform == Device.Windows)
|
||||
if(Device.RuntimePlatform == Device.iOS)
|
||||
{
|
||||
ToolbarItems.Add(new DismissModalToolBarItem(this, AppResources.Cancel));
|
||||
}
|
||||
|
@ -211,7 +211,7 @@ namespace Bit.App.Pages
|
|||
else
|
||||
{
|
||||
Content = NoDataLabel;
|
||||
if(Device.RuntimePlatform == Device.iOS || Device.RuntimePlatform == Device.Windows)
|
||||
if(Device.RuntimePlatform == Device.iOS)
|
||||
{
|
||||
ToolbarItems.Add(new DismissModalToolBarItem(this, AppResources.Close));
|
||||
}
|
||||
|
|
|
@ -139,7 +139,7 @@ namespace Bit.App.Pages
|
|||
|
||||
Title = AppResources.EditItem;
|
||||
Content = Table;
|
||||
if(Device.RuntimePlatform == Device.iOS || Device.RuntimePlatform == Device.Windows)
|
||||
if(Device.RuntimePlatform == Device.iOS)
|
||||
{
|
||||
ToolbarItems.Add(new DismissModalToolBarItem(this, AppResources.Cancel));
|
||||
}
|
||||
|
|
|
@ -76,7 +76,7 @@ namespace Bit.App.Pages
|
|||
{
|
||||
EditItem = new EditCipherToolBarItem(this, _cipherId);
|
||||
ToolbarItems.Add(EditItem);
|
||||
if(Device.RuntimePlatform == Device.iOS || Device.RuntimePlatform == Device.Windows)
|
||||
if(Device.RuntimePlatform == Device.iOS)
|
||||
{
|
||||
ToolbarItems.Add(new DismissModalToolBarItem(this));
|
||||
}
|
||||
|
|
|
@ -54,14 +54,25 @@ namespace Bit.App
|
|||
}
|
||||
|
||||
public static async Task PushForDeviceAsync(this INavigation navigation, Page page)
|
||||
{
|
||||
if (Device.RuntimePlatform != Device.Windows)
|
||||
{
|
||||
await navigation.PushModalAsync(new ExtendedNavigationPage(page), true);
|
||||
}
|
||||
else
|
||||
{
|
||||
await navigation.PushAsync(page, true);
|
||||
}
|
||||
}
|
||||
|
||||
public static async Task PopForDeviceAsync(this INavigation navigation)
|
||||
{
|
||||
if(navigation.ModalStack.Count < 1)
|
||||
{
|
||||
if (navigation.NavigationStack.Count > 0 && Device.RuntimePlatform == Device.Windows)
|
||||
{
|
||||
await navigation.PopAsync();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
<Content Include="$(MSBuildThisFileDirectory)globe.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)icon.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)id.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)ion_chevron_left.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)ion_chevron_right.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)launch.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)lightbulb.png" />
|
||||
|
|
BIN
src/UWP.Images/ion_chevron_left.png
Normal file
BIN
src/UWP.Images/ion_chevron_left.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1 KiB |
Loading…
Reference in a new issue