From 285ce1b9bf595b9c3aa44800cf73c39050228880 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Su=C3=A1rez=20Ruiz?= Date: Thu, 17 Nov 2016 15:08:22 +0100 Subject: [PATCH] Added iOS resources and renderers. Created Settings view. --- .../eShopOnContainers.Core/App.xaml | 4 +- .../Controls/BindablePicker.cs | 4 +- .../Controls/CustomSwitch.cs | 25 +++++ .../Services/Navigation/NavigationService.cs | 1 + .../ViewModels/Base/ViewModelLocator.cs | 1 + .../ViewModels/MainViewModel.cs | 8 ++ .../ViewModels/SettingsViewModel.cs | 9 ++ .../Views/FiltersView.xaml | 4 +- .../Views/MainView.xaml | 13 +++ .../Views/SettingsView.xaml | 86 ++++++++++++++++++ .../Views/SettingsView.xaml.cs | 18 ++++ .../eShopOnContainers.Core.csproj | 11 +++ .../Renderers/CustomSwitchRenderer.cs | 58 ++++++++++++ .../eShopOnContainers.Droid.csproj | 1 + .../eShopOnContainers.Windows/App.xaml | 4 +- .../Renderers/CustomSwitchRenderer.cs | 60 ++++++++++++ .../eShopOnContainers.Windows.csproj | 1 + .../Effects/EntryLineColorEffect.cs | 1 + .../Renderers/CustomSwitchRenderer.cs | 56 ++++++++++++ .../Renderers/SlideDownMenuPageRenderer.cs | 68 ++++++++++++++ .../Resources/Default-568h@2x.png | Bin 8884 -> 90131 bytes .../Resources/Default-Portrait.png | Bin 10710 -> 124200 bytes .../Resources/Default-Portrait@2x.png | Bin 34540 -> 282201 bytes .../Resources/Default.png | Bin 7243 -> 36851 bytes .../Resources/Default@2x.png | Bin 8368 -> 99220 bytes .../Resources/Icon-76.png | Bin 1200 -> 4442 bytes .../Resources/Icon-76@2x.png | Bin 2262 -> 9821 bytes .../Resources/Icon-Small.png | Bin 1144 -> 1518 bytes .../Resources/Icon-Small@2x.png | Bin 955 -> 3331 bytes .../Resources/Icon-Small@3x.png | Bin 7309 -> 5451 bytes .../Resources/menu_cart.png | Bin 0 -> 1187 bytes .../Resources/menu_cart@2x.png | Bin 0 -> 1483 bytes .../Resources/menu_cart@3x.png | Bin 0 -> 2014 bytes .../Resources/menu_filter.png | Bin 0 -> 1034 bytes .../Resources/menu_filter@2x.png | Bin 0 -> 1023 bytes .../Resources/menu_filter@3x.png | Bin 0 -> 1280 bytes .../Resources/menu_profile.png | Bin 0 -> 1159 bytes .../Resources/menu_profile@2x.png | Bin 0 -> 1435 bytes .../Resources/menu_profile@3x.png | Bin 0 -> 1767 bytes .../Resources/product_add.png | Bin 0 -> 1009 bytes .../Resources/product_add@2x.png | Bin 0 -> 1079 bytes .../Resources/product_add@3x.png | Bin 0 -> 1145 bytes .../eShopOnContainers.iOS.csproj | 54 ++++++++++- 43 files changed, 478 insertions(+), 9 deletions(-) create mode 100644 src/Mobile/eShopOnContainers/eShopOnContainers.Core/Controls/CustomSwitch.cs create mode 100644 src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/SettingsViewModel.cs create mode 100644 src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/SettingsView.xaml create mode 100644 src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/SettingsView.xaml.cs create mode 100644 src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Renderers/CustomSwitchRenderer.cs create mode 100644 src/Mobile/eShopOnContainers/eShopOnContainers.Windows/Renderers/CustomSwitchRenderer.cs create mode 100644 src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Renderers/CustomSwitchRenderer.cs create mode 100644 src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Renderers/SlideDownMenuPageRenderer.cs create mode 100644 src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/menu_cart.png create mode 100644 src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/menu_cart@2x.png create mode 100644 src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/menu_cart@3x.png create mode 100644 src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/menu_filter.png create mode 100644 src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/menu_filter@2x.png create mode 100644 src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/menu_filter@3x.png create mode 100644 src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/menu_profile.png create mode 100644 src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/menu_profile@2x.png create mode 100644 src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/menu_profile@3x.png create mode 100644 src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/product_add.png create mode 100644 src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/product_add@2x.png create mode 100644 src/Mobile/eShopOnContainers/eShopOnContainers.iOS/Resources/product_add@3x.png diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/App.xaml b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/App.xaml index d67f7f3d6..9ef10872e 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/App.xaml +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/App.xaml @@ -112,9 +112,9 @@ + Value="{StaticResource BlackColor}" /> + Value="{StaticResource BlackColor}" /> (); _unityContainer.RegisterType(); _unityContainer.RegisterType(); + _unityContainer.RegisterType(); } public T Resolve() diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/MainViewModel.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/MainViewModel.cs index f2a28a184..2cc8a9585 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/MainViewModel.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/MainViewModel.cs @@ -3,11 +3,14 @@ using eShopOnContainers.ViewModels.Base; using eShopOnContainers.Core.Models.Navigation; using Xamarin.Forms; using eShopOnContainers.Core.ViewModels.Base; +using System.Windows.Input; namespace eShopOnContainers.Core.ViewModels { public class MainViewModel : ViewModelBase { + public ICommand SettingsCommand => new Command(Settings); + public override Task InitializeAsync(object navigationData) { IsBusy = true; @@ -20,5 +23,10 @@ namespace eShopOnContainers.Core.ViewModels return base.InitializeAsync(navigationData); } + + private void Settings() + { + NavigationService.NavigateToAsync(); + } } } \ No newline at end of file diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/SettingsViewModel.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/SettingsViewModel.cs new file mode 100644 index 000000000..659a921c8 --- /dev/null +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/SettingsViewModel.cs @@ -0,0 +1,9 @@ +using eShopOnContainers.ViewModels.Base; + +namespace eShopOnContainers.Core.ViewModels +{ + public class SettingsViewModel : ViewModelBase + { + + } +} diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/FiltersView.xaml b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/FiltersView.xaml index 35e84655b..e91b27527 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/FiltersView.xaml +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/FiltersView.xaml @@ -21,7 +21,9 @@ + Value="Fill" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/SettingsView.xaml.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/SettingsView.xaml.cs new file mode 100644 index 000000000..f7ad31a47 --- /dev/null +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/SettingsView.xaml.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +using Xamarin.Forms; + +namespace eShopOnContainers.Core.Views +{ + public partial class SettingsView : ContentPage + { + public SettingsView() + { + InitializeComponent(); + } + } +} diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/eShopOnContainers.Core.csproj b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/eShopOnContainers.Core.csproj index 73791230b..ab0e87af1 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/eShopOnContainers.Core.csproj +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/eShopOnContainers.Core.csproj @@ -48,6 +48,7 @@ CartButton.xaml + @@ -99,6 +100,7 @@ + CartView.xaml @@ -126,6 +128,9 @@ ProfileView.xaml + + SettingsView.xaml + CartOrderItemTemplate.xaml @@ -303,6 +308,12 @@ Designer + + + MSBuild:UpdateDesignTimeXaml + Designer + + diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Renderers/CustomSwitchRenderer.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Renderers/CustomSwitchRenderer.cs new file mode 100644 index 000000000..a22a2936a --- /dev/null +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Renderers/CustomSwitchRenderer.cs @@ -0,0 +1,58 @@ +using System; +using Xamarin.Forms.Platform.Android; +using Xamarin.Forms; +using eShopOnContainers.Core.Controls; + +namespace eShopOnContainers.Droid.Renderers +{ + public class CustomSwitchRenderer : ViewRenderer + { + protected override void OnElementChanged(ElementChangedEventArgs e) + { + base.OnElementChanged(e); + + if (e.OldElement != null) + { + this.Element.Toggled -= ElementToggled; + return; + } + + if (this.Element == null) + { + return; + } + + var switchControl = new Android.Widget.Switch(Forms.Context) + { + TextOn = this.Element.TextOn, + TextOff = this.Element.TextOff + }; + + switchControl.CheckedChange += ControlValueChanged; + this.Element.Toggled += ElementToggled; + + this.SetNativeControl(switchControl); + } + + protected override void Dispose(bool disposing) + { + if (disposing) + { + this.Control.CheckedChange -= this.ControlValueChanged; + this.Element.Toggled -= ElementToggled; + } + + base.Dispose(disposing); + } + + private void ElementToggled(object sender, ToggledEventArgs e) + { + this.Control.Checked = this.Element.IsToggled; + } + + private void ControlValueChanged(object sender, EventArgs e) + { + this.Element.IsToggled = this.Control.Checked; + } + } +} \ No newline at end of file diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/eShopOnContainers.Droid.csproj b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/eShopOnContainers.Droid.csproj index 83c3d49ab..9e9f9ebc9 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/eShopOnContainers.Droid.csproj +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/eShopOnContainers.Droid.csproj @@ -203,6 +203,7 @@ + diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Windows/App.xaml b/src/Mobile/eShopOnContainers/eShopOnContainers.Windows/App.xaml index 25cd8e1e5..51f9ddfc0 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Windows/App.xaml +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Windows/App.xaml @@ -6,9 +6,9 @@ RequestedTheme="Light"> - + #00A69C - +