diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/App.xaml b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/App.xaml index 59b405930..243e49935 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/App.xaml +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/App.xaml @@ -100,6 +100,7 @@ + diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Converters/ImageConverter.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Converters/ImageConverter.cs new file mode 100644 index 000000000..289d3b0a1 --- /dev/null +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Converters/ImageConverter.cs @@ -0,0 +1,22 @@ +using System; +using System.Globalization; +using Xamarin.Forms; + +namespace eShopOnContainers.Core.Converters +{ + public class ImageConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + if (value == null) + return string.Empty; + + return value; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Catalog/CatalogItem.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Catalog/CatalogItem.cs index cd487d24b..95dff1f60 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Catalog/CatalogItem.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Catalog/CatalogItem.cs @@ -1,13 +1,16 @@ -using System; - -namespace eShopOnContainers.Core.Models.Catalog +namespace eShopOnContainers.Core.Models.Catalog { public class CatalogItem { - public int Id { get; set; } + public string Id { get; set; } public string Name { get; set; } public string Description { get; set; } public decimal Price { get; set; } - public string Image { get; set; } + public string PictureUri { get; set; } + public int CatalogBrandId { get; set; } + public string CatalogBrand { get; set; } + public int CatalogTypeId { get; set; } + public string CatalogType { get; set; } + } } \ No newline at end of file diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Orders/OrderItem.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Orders/OrderItem.cs index 939addd7f..77bf8b220 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Orders/OrderItem.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Orders/OrderItem.cs @@ -1,17 +1,90 @@ -using System; +using eShopOnContainers.ViewModels.Base; +using System; namespace eShopOnContainers.Core.Models.Orders { - public class OrderItem + public class OrderItem : ExtendedBindableObject { - public int ProductId { get; set; } - public Guid OrderId { get; set; } - public string ProductName { get; set; } - public decimal UnitPrice { get; set; } - public int Quantity { get; set; } - public decimal Discount { get; set; } + private string _productImage; + private int _productId; + private Guid _orderId; + private string _productName; + private decimal _unitPrice; + private int _quantity; + private decimal _discount; + + public int ProductId + { + get { return _productId; } + set + { + _productId = value; + RaisePropertyChanged(() => ProductId); + } + } + + public Guid OrderId + { + get { return _orderId; } + set + { + _orderId = value; + RaisePropertyChanged(() => OrderId); + } + } + + public string ProductName + { + get { return _productName; } + set + { + _productName = value; + RaisePropertyChanged(() => ProductName); + } + } + + public decimal UnitPrice + { + get { return _unitPrice; } + set + { + _unitPrice = value; + RaisePropertyChanged(() => UnitPrice); + } + } + + public int Quantity + { + get { return _quantity; } + set + { + _quantity = value; + RaisePropertyChanged(() => Quantity); + } + } + + public decimal Discount + { + get { return _discount; } + set + { + _discount = value; + RaisePropertyChanged(() => Discount); + } + } + public decimal Total { get { return Quantity * UnitPrice; } } + public string ProductImage + { + get { return _productImage; } + set + { + _productImage = value; + RaisePropertyChanged(() => ProductImage); + } + } + public override string ToString() { return String.Format("Product Id: {0}, Quantity: {1}", ProductId, Quantity); diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Catalog/CatalogMockService.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Catalog/CatalogMockService.cs index 180b779c5..1282d4782 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Catalog/CatalogMockService.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Catalog/CatalogMockService.cs @@ -1,6 +1,7 @@ using eShopOnContainers.Core.Models.Catalog; using System; using System.Collections.ObjectModel; +using System.Linq; using System.Threading.Tasks; using Xamarin.Forms; @@ -8,16 +9,25 @@ namespace eShopOnContainers.Core.Services.Catalog { public class CatalogMockService : ICatalogService { - public async Task> GetProductsAsync() + private ObservableCollection MockCatalog = new ObservableCollection + { + new CatalogItem { Id = "1", PictureUri = Device.OS != TargetPlatform.Windows? "fake_product_01" : "Assets/fake_product_01.png", Name = ".NET Bot Blue Sweatshirt (M)", Price = 19.50M }, + new CatalogItem { Id = "2", PictureUri = Device.OS != TargetPlatform.Windows? "fake_product_02": "Assets/fake_product_02.png", Name = ".NET Bot Purple Sweatshirt (M)", Price = 19.50M }, + new CatalogItem { Id = "3", PictureUri = Device.OS != TargetPlatform.Windows? "fake_product_03": "Assets/fake_product_03.png", Name = ".NET Bot Black Sweatshirt (M)", Price = 19.95M } + }; + + public async Task> GetCatalogAsync() + { + await Task.Delay(500); + + return MockCatalog; + } + + public async Task GetCatalogItemAsync(string id) { await Task.Delay(500); - return new ObservableCollection - { - new CatalogItem { Id = 1, Image = Device.OS != TargetPlatform.Windows ? "fake_product_01" : "Assets/fake_product_01.png", Name = ".NET Bot Blue Sweatshirt (M)", Price = 19.50M }, - new CatalogItem { Id = 2, Image = Device.OS != TargetPlatform.Windows ? "fake_product_02": "Assets/fake_product_02.png", Name = ".NET Bot Purple Sweatshirt (M)", Price = 19.50M }, - new CatalogItem { Id = 3, Image = Device.OS != TargetPlatform.Windows ? "fake_product_03": "Assets/fake_product_03.png", Name = ".NET Bot Black Sweatshirt (M)", Price = 19.95M } - }; + return MockCatalog.FirstOrDefault(c => c.Id == id); } } } \ No newline at end of file diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Catalog/ICatalogService.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Catalog/ICatalogService.cs index 5b9137868..4cac65467 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Catalog/ICatalogService.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Catalog/ICatalogService.cs @@ -6,6 +6,7 @@ namespace eShopOnContainers.Core.Services.Catalog { public interface ICatalogService { - Task> GetProductsAsync(); + Task> GetCatalogAsync(); + Task GetCatalogItemAsync(string id); } } diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/CartViewModel.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/CartViewModel.cs index 36ee027fa..238d5e2e0 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/CartViewModel.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/CartViewModel.cs @@ -1,7 +1,11 @@ -using eShopOnContainers.Core.Models.Orders; +using eShopOnContainers.Core.Models.Catalog; +using eShopOnContainers.Core.Models.Orders; using eShopOnContainers.Core.Services.Orders; using eShopOnContainers.Core.ViewModels.Base; using eShopOnContainers.ViewModels.Base; +using System; +using System.Collections.ObjectModel; +using System.Linq; using System.Threading.Tasks; using Xamarin.Forms; @@ -10,7 +14,8 @@ namespace eShopOnContainers.Core.ViewModels public class CartViewModel : ViewModelBase { private int _badgeCount; - private Order _order; + private ObservableCollection _orderItems; + private decimal _total; private IOrdersService _orderService; @@ -29,24 +34,70 @@ namespace eShopOnContainers.Core.ViewModels } } - public Order Order + public ObservableCollection OrderItems { - get { return _order; } + get { return _orderItems; } set { - _order = value; - RaisePropertyChanged(() => Order); + _orderItems = value; + RaisePropertyChanged(() => OrderItems); } } - public override async Task InitializeAsync(object navigationData) + public decimal Total { - MessagingCenter.Subscribe(this, MessengerKeys.AddProduct, (sender) => + get { return _total; } + set + { + _total = value; + RaisePropertyChanged(() => Total); + } + } + + public override Task InitializeAsync(object navigationData) + { + MessagingCenter.Subscribe(this, MessengerKeys.AddProduct, (sender, arg) => { BadgeCount++; + + AddCartItem(arg); }); - Order = await _orderService.GetCartAsync(); + OrderItems = new ObservableCollection(); + + return base.InitializeAsync(navigationData); + } + + private void AddCartItem(CatalogItem item) + { + if (OrderItems.Any(o => o.ProductId == Convert.ToInt32(item.Id))) + { + var orderItem = OrderItems.First(o => o.ProductId == Convert.ToInt32(item.Id)); + orderItem.Quantity++; + } + else + { + OrderItems.Add(new OrderItem + { + ProductId = Convert.ToInt32(item.Id), + ProductName = item.Name, + ProductImage = item.PictureUri, + UnitPrice = item.Price, + Quantity = 1 + }); + } + + ReCalculateTotal(); + } + + private void ReCalculateTotal() + { + Total = 0; + + foreach (var orderItem in OrderItems) + { + Total += orderItem.Total; + } } } } diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/CatalogViewModel.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/CatalogViewModel.cs index 0c5f904d4..58076add3 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/CatalogViewModel.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/CatalogViewModel.cs @@ -5,13 +5,13 @@ using Xamarin.Forms; using eShopOnContainers.Core.ViewModels.Base; using eShopOnContainers.Core.Models.Catalog; using eShopOnContainers.Core.Services.Catalog; +using System.Windows.Input; namespace eShopOnContainers.Core.ViewModels { public class CatalogViewModel : ViewModelBase { private ObservableCollection _products; - private CatalogItem _product; private ICatalogService _productsService; @@ -30,28 +30,20 @@ namespace eShopOnContainers.Core.ViewModels } } - public CatalogItem Product - { - get { return _product; } - set - { - _product = value; - - if (_product != null) - { - AddProduct(); - } - } - } + public ICommand AddCatalogItemCommand => new Command(AddCatalogItem); public override async Task InitializeAsync(object navigationData) { - Products = await _productsService.GetProductsAsync(); + IsBusy = true; + + Products = await _productsService.GetCatalogAsync(); + + IsBusy = false; } - private void AddProduct() + private void AddCatalogItem(CatalogItem catalogItem) { - MessagingCenter.Send(this, MessengerKeys.AddProduct); + MessagingCenter.Send(this, MessengerKeys.AddProduct, catalogItem); } } } diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/LoginViewModel.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/LoginViewModel.cs index 244ac2b92..77886d52d 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/LoginViewModel.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/LoginViewModel.cs @@ -2,6 +2,7 @@ using eShopOnContainers.ViewModels.Base; using System; using System.Diagnostics; +using System.Threading.Tasks; using System.Windows.Input; using Xamarin.Forms; @@ -73,6 +74,8 @@ namespace eShopOnContainers.Core.ViewModels { try { + await Task.Delay(1000); + isAuthenticated = true; } catch (Exception ex) diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/OrderDetailViewModel.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/OrderDetailViewModel.cs index ee7a3384a..b82e2ffae 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/OrderDetailViewModel.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/OrderDetailViewModel.cs @@ -1,6 +1,8 @@ using System.Threading.Tasks; using eShopOnContainers.Core.Models.Orders; using eShopOnContainers.ViewModels.Base; +using eShopOnContainers.Core.Services.Orders; +using eShopOnContainers.Core.Services.Catalog; namespace eShopOnContainers.Core.ViewModels { @@ -8,6 +10,16 @@ namespace eShopOnContainers.Core.ViewModels { private Order _order; + private IOrdersService _orderService; + private ICatalogService _catalogService; + + public OrderDetailViewModel(IOrdersService orderService, + ICatalogService catalogService) + { + _orderService = orderService; + _catalogService = catalogService; + } + public Order Order { get { return _order; } @@ -18,14 +30,24 @@ namespace eShopOnContainers.Core.ViewModels } } - public override Task InitializeAsync(object navigationData) + public override async Task InitializeAsync(object navigationData) { if(navigationData is Order) { - Order = navigationData as Order; - } + IsBusy = true; + + var order = navigationData as Order; + + foreach (var orderItem in order.OrderItems) + { + var catalogItem = await _catalogService.GetCatalogItemAsync(orderItem.ProductId.ToString()); + orderItem.ProductImage = catalogItem.PictureUri; + } - return base.InitializeAsync(navigationData); + Order = order; + + IsBusy = false; + } } } } \ No newline at end of file diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/ProfileViewModel.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/ProfileViewModel.cs index 0be7e5231..1c454db31 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/ProfileViewModel.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/ProfileViewModel.cs @@ -35,13 +35,21 @@ namespace eShopOnContainers.Core.ViewModels public override async Task InitializeAsync(object navigationData) { + IsBusy = true; + Orders = await _ordersService.GetOrdersAsync(); + + IsBusy = false; } private async void LogoutAsync() { + IsBusy = true; + await NavigationService.NavigateToAsync(); await NavigationService.RemoveBackStackAsync(); + + IsBusy = false; } private void OrderDetail(Order order) diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/CartView.xaml b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/CartView.xaml index fe1f2ffe6..dcf7a7e26 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/CartView.xaml +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/CartView.xaml @@ -2,43 +2,19 @@ - - - - - - - @@ -47,91 +23,43 @@ - - - + + - - - - - - + + - - + + + + + + + + + + + - - + Grid.Row="1" + Margin="0,0,0,24"> - - - - - - - - - - - - diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/CatalogView.xaml b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/CatalogView.xaml index 3edd45fe8..4b2db156d 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/CatalogView.xaml +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/CatalogView.xaml @@ -6,6 +6,7 @@ xmlns:views="clr-namespace:eShopOnContainers.Core.Views;assembly=eShopOnContainers.Core" xmlns:animations="clr-namespace:eShopOnContainers.Core.Animations;assembly=eShopOnContainers.Core" xmlns:triggers="clr-namespace:eShopOnContainers.Core.Triggers;assembly=eShopOnContainers.Core" + xmlns:behaviors="clr-namespace:eShopOnContainers.Core.Behaviors;assembly=eShopOnContainers.Core" Title="Catalog"> @@ -73,11 +74,16 @@ x:Name="Products" Grid.Row="1" ItemsSource="{Binding Products}" - SelectedItem="{Binding Product, Mode=TwoWay}" HasUnevenRows="True" SeparatorVisibility="None" CachingStrategy="RecycleElement" Style="{StaticResource ProductsListStyle}"> + + + @@ -86,5 +92,22 @@ + + + + + + \ No newline at end of file diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/LoginView.xaml b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/LoginView.xaml index b76bb4769..94f62412a 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/LoginView.xaml +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/LoginView.xaml @@ -146,7 +146,7 @@ + controls:CustomTabbedPage.BadgeText="{Binding BadgeCount}" + controls:CustomTabbedPage.BadgeColor="{StaticResource LightGreenColor}"> + + + + + + \ No newline at end of file diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/Templates/OrderItemTemplate.xaml b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/Templates/OrderItemTemplate.xaml index 65d63513e..5d9b3a218 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/Templates/OrderItemTemplate.xaml +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/Templates/OrderItemTemplate.xaml @@ -2,7 +2,8 @@ + x:Class="eShopOnContainers.Core.Views.Templates.OrderItemTemplate" + xmlns:ffimageloading="clr-namespace:FFImageLoading.Forms;assembly=FFImageLoading.Forms"> @@ -55,7 +56,8 @@ - + @@ -64,10 +66,18 @@ - + Source="{Binding ProductImage, Converter={StaticResource ImageConverter}}" + CacheDuration="30" + CacheType="Disk" + DownsampleToViewSize="True" + HeightRequest="108" + WidthRequest="108" + Aspect="AspectFit" + VerticalOptions="Start" + Margin="12,0,0,0"/> diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/eShopOnContainers.Core.csproj b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/eShopOnContainers.Core.csproj index c7fb89b5f..0480b4308 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/eShopOnContainers.Core.csproj +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/eShopOnContainers.Core.csproj @@ -47,6 +47,7 @@ + diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Properties/AndroidManifest.xml b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Properties/AndroidManifest.xml index d9a31588b..b9fd8f391 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Properties/AndroidManifest.xml +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Properties/AndroidManifest.xml @@ -1,5 +1,5 @@  - + - + \ No newline at end of file diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Renderers/BadgeView.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Renderers/BadgeView.cs index 6c0704924..86e739693 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Renderers/BadgeView.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Renderers/BadgeView.cs @@ -22,7 +22,7 @@ namespace eShopOnContainers.Droid.Renderers } private const int DefaultHmarginDip = -10; - private const int DefaultVmarginDip = -5; + private const int DefaultVmarginDip = 2; private const int DefaultLrPaddingDip = 4; private const int DefaultCornerRadiusDip = 7; diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Renderers/CustomTabbedPageRenderer.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Renderers/CustomTabbedPageRenderer.cs index f952f66ec..c6637dd9d 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Renderers/CustomTabbedPageRenderer.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Renderers/CustomTabbedPageRenderer.cs @@ -38,7 +38,7 @@ namespace eShopOnContainers.Droid.Renderers Console.WriteLine("No TabLayout found. Bedge not added."); return; } - + _tabbedPage = e.NewElement as TabbedPage; _viewPager = (ViewPager)GetChildAt(0); @@ -76,15 +76,22 @@ namespace eShopOnContainers.Droid.Renderers Element.ChildRemoved += OnTabRemoved; } - private void SetTab(TabLayout.Tab tab, string name) { try { int id = Resources.GetIdentifier(name, "drawable", Context.PackageName); - tab.CustomView.FindViewById(Resource.Id.tab_icon).SetImageResource(id); - tab.SetCustomView(Resource.Layout.TabLayout); tab.SetIcon(null); + + LinearLayout.LayoutParams linearLayoutParams = new LinearLayout.LayoutParams(LayoutParams.MatchParent, LayoutParams.MatchParent); + linearLayoutParams.SetMargins(0, -48, 0, 0); + + ImageView img = new ImageView(Context); + img.LayoutParameters = linearLayoutParams; + img.SetPadding(0, 0, 0, 48); + img.SetImageResource(id); + + tab.SetCustomView(img); } catch (Exception ex) { diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/Resource.Designer.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/Resource.Designer.cs index 35b579245..b1f70bdf9 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/Resource.Designer.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/Resource.Designer.cs @@ -2021,304 +2021,307 @@ namespace eShopOnContainers.Droid public const int abc_textfield_search_material = 2130837578; // aapt resource value: 0x7f02004b - public const int design_fab_background = 2130837579; + public const int background = 2130837579; // aapt resource value: 0x7f02004c - public const int design_snackbar_background = 2130837580; + public const int design_fab_background = 2130837580; // aapt resource value: 0x7f02004d - public const int fake_product_01 = 2130837581; + public const int design_snackbar_background = 2130837581; // aapt resource value: 0x7f02004e - public const int fake_product_02 = 2130837582; + public const int fake_product_01 = 2130837582; // aapt resource value: 0x7f02004f - public const int fake_product_03 = 2130837583; + public const int fake_product_02 = 2130837583; // aapt resource value: 0x7f020050 - public const int ic_audiotrack = 2130837584; + public const int fake_product_03 = 2130837584; // aapt resource value: 0x7f020051 - public const int ic_audiotrack_light = 2130837585; + public const int ic_audiotrack = 2130837585; // aapt resource value: 0x7f020052 - public const int ic_bluetooth_grey = 2130837586; + public const int ic_audiotrack_light = 2130837586; // aapt resource value: 0x7f020053 - public const int ic_bluetooth_white = 2130837587; + public const int ic_bluetooth_grey = 2130837587; // aapt resource value: 0x7f020054 - public const int ic_cast_dark = 2130837588; + public const int ic_bluetooth_white = 2130837588; // aapt resource value: 0x7f020055 - public const int ic_cast_disabled_light = 2130837589; + public const int ic_cast_dark = 2130837589; // aapt resource value: 0x7f020056 - public const int ic_cast_grey = 2130837590; + public const int ic_cast_disabled_light = 2130837590; // aapt resource value: 0x7f020057 - public const int ic_cast_light = 2130837591; + public const int ic_cast_grey = 2130837591; // aapt resource value: 0x7f020058 - public const int ic_cast_off_light = 2130837592; + public const int ic_cast_light = 2130837592; // aapt resource value: 0x7f020059 - public const int ic_cast_on_0_light = 2130837593; + public const int ic_cast_off_light = 2130837593; // aapt resource value: 0x7f02005a - public const int ic_cast_on_1_light = 2130837594; + public const int ic_cast_on_0_light = 2130837594; // aapt resource value: 0x7f02005b - public const int ic_cast_on_2_light = 2130837595; + public const int ic_cast_on_1_light = 2130837595; // aapt resource value: 0x7f02005c - public const int ic_cast_on_light = 2130837596; + public const int ic_cast_on_2_light = 2130837596; // aapt resource value: 0x7f02005d - public const int ic_cast_white = 2130837597; + public const int ic_cast_on_light = 2130837597; // aapt resource value: 0x7f02005e - public const int ic_close_dark = 2130837598; + public const int ic_cast_white = 2130837598; // aapt resource value: 0x7f02005f - public const int ic_close_light = 2130837599; + public const int ic_close_dark = 2130837599; // aapt resource value: 0x7f020060 - public const int ic_collapse = 2130837600; + public const int ic_close_light = 2130837600; // aapt resource value: 0x7f020061 - public const int ic_collapse_00000 = 2130837601; + public const int ic_collapse = 2130837601; // aapt resource value: 0x7f020062 - public const int ic_collapse_00001 = 2130837602; + public const int ic_collapse_00000 = 2130837602; // aapt resource value: 0x7f020063 - public const int ic_collapse_00002 = 2130837603; + public const int ic_collapse_00001 = 2130837603; // aapt resource value: 0x7f020064 - public const int ic_collapse_00003 = 2130837604; + public const int ic_collapse_00002 = 2130837604; // aapt resource value: 0x7f020065 - public const int ic_collapse_00004 = 2130837605; + public const int ic_collapse_00003 = 2130837605; // aapt resource value: 0x7f020066 - public const int ic_collapse_00005 = 2130837606; + public const int ic_collapse_00004 = 2130837606; // aapt resource value: 0x7f020067 - public const int ic_collapse_00006 = 2130837607; + public const int ic_collapse_00005 = 2130837607; // aapt resource value: 0x7f020068 - public const int ic_collapse_00007 = 2130837608; + public const int ic_collapse_00006 = 2130837608; // aapt resource value: 0x7f020069 - public const int ic_collapse_00008 = 2130837609; + public const int ic_collapse_00007 = 2130837609; // aapt resource value: 0x7f02006a - public const int ic_collapse_00009 = 2130837610; + public const int ic_collapse_00008 = 2130837610; // aapt resource value: 0x7f02006b - public const int ic_collapse_00010 = 2130837611; + public const int ic_collapse_00009 = 2130837611; // aapt resource value: 0x7f02006c - public const int ic_collapse_00011 = 2130837612; + public const int ic_collapse_00010 = 2130837612; // aapt resource value: 0x7f02006d - public const int ic_collapse_00012 = 2130837613; + public const int ic_collapse_00011 = 2130837613; // aapt resource value: 0x7f02006e - public const int ic_collapse_00013 = 2130837614; + public const int ic_collapse_00012 = 2130837614; // aapt resource value: 0x7f02006f - public const int ic_collapse_00014 = 2130837615; + public const int ic_collapse_00013 = 2130837615; // aapt resource value: 0x7f020070 - public const int ic_collapse_00015 = 2130837616; + public const int ic_collapse_00014 = 2130837616; // aapt resource value: 0x7f020071 - public const int ic_errorstatus = 2130837617; + public const int ic_collapse_00015 = 2130837617; // aapt resource value: 0x7f020072 - public const int ic_expand = 2130837618; + public const int ic_errorstatus = 2130837618; // aapt resource value: 0x7f020073 - public const int ic_expand_00000 = 2130837619; + public const int ic_expand = 2130837619; // aapt resource value: 0x7f020074 - public const int ic_expand_00001 = 2130837620; + public const int ic_expand_00000 = 2130837620; // aapt resource value: 0x7f020075 - public const int ic_expand_00002 = 2130837621; + public const int ic_expand_00001 = 2130837621; // aapt resource value: 0x7f020076 - public const int ic_expand_00003 = 2130837622; + public const int ic_expand_00002 = 2130837622; // aapt resource value: 0x7f020077 - public const int ic_expand_00004 = 2130837623; + public const int ic_expand_00003 = 2130837623; // aapt resource value: 0x7f020078 - public const int ic_expand_00005 = 2130837624; + public const int ic_expand_00004 = 2130837624; // aapt resource value: 0x7f020079 - public const int ic_expand_00006 = 2130837625; + public const int ic_expand_00005 = 2130837625; // aapt resource value: 0x7f02007a - public const int ic_expand_00007 = 2130837626; + public const int ic_expand_00006 = 2130837626; // aapt resource value: 0x7f02007b - public const int ic_expand_00008 = 2130837627; + public const int ic_expand_00007 = 2130837627; // aapt resource value: 0x7f02007c - public const int ic_expand_00009 = 2130837628; + public const int ic_expand_00008 = 2130837628; // aapt resource value: 0x7f02007d - public const int ic_expand_00010 = 2130837629; + public const int ic_expand_00009 = 2130837629; // aapt resource value: 0x7f02007e - public const int ic_expand_00011 = 2130837630; + public const int ic_expand_00010 = 2130837630; // aapt resource value: 0x7f02007f - public const int ic_expand_00012 = 2130837631; + public const int ic_expand_00011 = 2130837631; // aapt resource value: 0x7f020080 - public const int ic_expand_00013 = 2130837632; + public const int ic_expand_00012 = 2130837632; // aapt resource value: 0x7f020081 - public const int ic_expand_00014 = 2130837633; + public const int ic_expand_00013 = 2130837633; // aapt resource value: 0x7f020082 - public const int ic_expand_00015 = 2130837634; + public const int ic_expand_00014 = 2130837634; // aapt resource value: 0x7f020083 - public const int ic_media_pause = 2130837635; + public const int ic_expand_00015 = 2130837635; // aapt resource value: 0x7f020084 - public const int ic_media_play = 2130837636; + public const int ic_media_pause = 2130837636; // aapt resource value: 0x7f020085 - public const int ic_media_route_disabled_mono_dark = 2130837637; + public const int ic_media_play = 2130837637; // aapt resource value: 0x7f020086 - public const int ic_media_route_off_mono_dark = 2130837638; + public const int ic_media_route_disabled_mono_dark = 2130837638; // aapt resource value: 0x7f020087 - public const int ic_media_route_on_0_mono_dark = 2130837639; + public const int ic_media_route_off_mono_dark = 2130837639; // aapt resource value: 0x7f020088 - public const int ic_media_route_on_1_mono_dark = 2130837640; + public const int ic_media_route_on_0_mono_dark = 2130837640; // aapt resource value: 0x7f020089 - public const int ic_media_route_on_2_mono_dark = 2130837641; + public const int ic_media_route_on_1_mono_dark = 2130837641; // aapt resource value: 0x7f02008a - public const int ic_media_route_on_mono_dark = 2130837642; + public const int ic_media_route_on_2_mono_dark = 2130837642; // aapt resource value: 0x7f02008b - public const int ic_pause_dark = 2130837643; + public const int ic_media_route_on_mono_dark = 2130837643; // aapt resource value: 0x7f02008c - public const int ic_pause_light = 2130837644; + public const int ic_pause_dark = 2130837644; // aapt resource value: 0x7f02008d - public const int ic_play_dark = 2130837645; + public const int ic_pause_light = 2130837645; // aapt resource value: 0x7f02008e - public const int ic_play_light = 2130837646; + public const int ic_play_dark = 2130837646; // aapt resource value: 0x7f02008f - public const int ic_speaker_dark = 2130837647; + public const int ic_play_light = 2130837647; // aapt resource value: 0x7f020090 - public const int ic_speaker_group_dark = 2130837648; + public const int ic_speaker_dark = 2130837648; // aapt resource value: 0x7f020091 - public const int ic_speaker_group_light = 2130837649; + public const int ic_speaker_group_dark = 2130837649; // aapt resource value: 0x7f020092 - public const int ic_speaker_light = 2130837650; + public const int ic_speaker_group_light = 2130837650; // aapt resource value: 0x7f020093 - public const int ic_successstatus = 2130837651; + public const int ic_speaker_light = 2130837651; // aapt resource value: 0x7f020094 - public const int ic_tv_dark = 2130837652; + public const int ic_successstatus = 2130837652; // aapt resource value: 0x7f020095 - public const int ic_tv_light = 2130837653; + public const int ic_tv_dark = 2130837653; // aapt resource value: 0x7f020096 - public const int icon = 2130837654; + public const int ic_tv_light = 2130837654; // aapt resource value: 0x7f020097 - public const int menu_cart = 2130837655; + public const int icon = 2130837655; // aapt resource value: 0x7f020098 - public const int menu_filter = 2130837656; + public const int menu_cart = 2130837656; // aapt resource value: 0x7f020099 - public const int menu_profile = 2130837657; + public const int menu_filter = 2130837657; // aapt resource value: 0x7f02009a - public const int mr_dialog_material_background_dark = 2130837658; + public const int menu_profile = 2130837658; // aapt resource value: 0x7f02009b - public const int mr_dialog_material_background_light = 2130837659; + public const int mr_dialog_material_background_dark = 2130837659; // aapt resource value: 0x7f02009c - public const int mr_ic_audiotrack_light = 2130837660; + public const int mr_dialog_material_background_light = 2130837660; // aapt resource value: 0x7f02009d - public const int mr_ic_cast_dark = 2130837661; + public const int mr_ic_audiotrack_light = 2130837661; // aapt resource value: 0x7f02009e - public const int mr_ic_cast_light = 2130837662; + public const int mr_ic_cast_dark = 2130837662; // aapt resource value: 0x7f02009f - public const int mr_ic_close_dark = 2130837663; + public const int mr_ic_cast_light = 2130837663; // aapt resource value: 0x7f0200a0 - public const int mr_ic_close_light = 2130837664; + public const int mr_ic_close_dark = 2130837664; // aapt resource value: 0x7f0200a1 - public const int mr_ic_media_route_connecting_mono_dark = 2130837665; + public const int mr_ic_close_light = 2130837665; // aapt resource value: 0x7f0200a2 - public const int mr_ic_media_route_connecting_mono_light = 2130837666; + public const int mr_ic_media_route_connecting_mono_dark = 2130837666; // aapt resource value: 0x7f0200a3 - public const int mr_ic_media_route_mono_dark = 2130837667; + public const int mr_ic_media_route_connecting_mono_light = 2130837667; // aapt resource value: 0x7f0200a4 - public const int mr_ic_media_route_mono_light = 2130837668; + public const int mr_ic_media_route_mono_dark = 2130837668; // aapt resource value: 0x7f0200a5 - public const int mr_ic_pause_dark = 2130837669; + public const int mr_ic_media_route_mono_light = 2130837669; // aapt resource value: 0x7f0200a6 - public const int mr_ic_pause_light = 2130837670; + public const int mr_ic_pause_dark = 2130837670; // aapt resource value: 0x7f0200a7 - public const int mr_ic_play_dark = 2130837671; + public const int mr_ic_pause_light = 2130837671; // aapt resource value: 0x7f0200a8 - public const int mr_ic_play_light = 2130837672; - - // aapt resource value: 0x7f0200ae - public const int notification_template_icon_bg = 2130837678; + public const int mr_ic_play_dark = 2130837672; // aapt resource value: 0x7f0200a9 - public const int product_add = 2130837673; + public const int mr_ic_play_light = 2130837673; + + // aapt resource value: 0x7f0200af + public const int notification_template_icon_bg = 2130837679; // aapt resource value: 0x7f0200aa - public const int roundedbg = 2130837674; + public const int product_add = 2130837674; // aapt resource value: 0x7f0200ab - public const int roundedbgdark = 2130837675; + public const int roundedbg = 2130837675; // aapt resource value: 0x7f0200ac - public const int splash_drawable = 2130837676; + public const int roundedbgdark = 2130837676; // aapt resource value: 0x7f0200ad - public const int user_profile = 2130837677; + public const int splash_drawable = 2130837677; + + // aapt resource value: 0x7f0200ae + public const int user_profile = 2130837678; static Drawable() { @@ -2522,6 +2525,9 @@ namespace eShopOnContainers.Droid // aapt resource value: 0x7f070098 public const int line3 = 2131165336; + // aapt resource value: 0x7f07009c + public const int linearLayout_Home = 2131165340; + // aapt resource value: 0x7f07000b public const int listMode = 2131165195; @@ -2717,8 +2723,8 @@ namespace eShopOnContainers.Droid // aapt resource value: 0x7f070013 public const int showTitle = 2131165203; - // aapt resource value: 0x7f07009d - public const int sliding_tabs = 2131165341; + // aapt resource value: 0x7f07009f + public const int sliding_tabs = 2131165343; // aapt resource value: 0x7f07006c public const int snackbar_action = 2131165292; @@ -2756,8 +2762,11 @@ namespace eShopOnContainers.Droid // aapt resource value: 0x7f07000d public const int tabMode = 2131165197; - // aapt resource value: 0x7f07009c - public const int tab_icon = 2131165340; + // aapt resource value: 0x7f07009d + public const int tab_icon = 2131165341; + + // aapt resource value: 0x7f07009e + public const int tab_layout_textview = 2131165342; // aapt resource value: 0x7f070099 public const int text = 2131165337; @@ -2780,8 +2789,8 @@ namespace eShopOnContainers.Droid // aapt resource value: 0x7f070048 public const int title_template = 2131165256; - // aapt resource value: 0x7f07009e - public const int toolbar = 2131165342; + // aapt resource value: 0x7f0700a0 + public const int toolbar = 2131165344; // aapt resource value: 0x7f070032 public const int top = 2131165234; diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-hdpi/background.png b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-hdpi/background.png new file mode 100644 index 000000000..4d38a6b8e Binary files /dev/null and b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-hdpi/background.png differ diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-hdpi/icon.png b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-hdpi/icon.png index 964f110ab..4bc24d5a2 100644 Binary files a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-hdpi/icon.png and b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-hdpi/icon.png differ diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xhdpi/background.png b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xhdpi/background.png new file mode 100644 index 000000000..cb5391ecd Binary files /dev/null and b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xhdpi/background.png differ diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xhdpi/icon.png b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xhdpi/icon.png index 3c01e60ce..c321b0644 100644 Binary files a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xhdpi/icon.png and b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xhdpi/icon.png differ diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xxhdpi/background.png b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xxhdpi/background.png new file mode 100644 index 000000000..b12808e87 Binary files /dev/null and b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xxhdpi/background.png differ diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xxhdpi/icon.png b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xxhdpi/icon.png index 0d8c1c57d..66fd82811 100644 Binary files a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xxhdpi/icon.png and b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xxhdpi/icon.png differ diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xxxhdpi/background.png b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xxxhdpi/background.png new file mode 100644 index 000000000..c578aa88b Binary files /dev/null and b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xxxhdpi/background.png differ diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xxxhdpi/icon.png b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xxxhdpi/icon.png new file mode 100644 index 000000000..8256a9996 Binary files /dev/null and b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/drawable-xxxhdpi/icon.png differ diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/layout/TabLayout.axml b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/layout/TabLayout.axml index d4df97857..009a094b5 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/layout/TabLayout.axml +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/layout/TabLayout.axml @@ -1,14 +1,28 @@ - + + - \ No newline at end of file + android:layout_height="0dp" + android:layout_weight="30" + android:id="@+id/tab_layout_textview" /> + \ No newline at end of file diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/values/styles.xml b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/values/styles.xml index 0a97a7eb4..a57d30cc3 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/values/styles.xml +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Resources/values/styles.xml @@ -21,8 +21,8 @@ true - @style/AppCompatDialogStyle + @drawable/background - + \ No newline at end of file diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/app.config b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/app.config index aff7b4c1a..a061fe0fd 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/app.config +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/app.config @@ -1,18 +1,22 @@ - + - - + + - - + + - - + + + + + + diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/eShopOnContainers.Droid.csproj b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/eShopOnContainers.Droid.csproj index cf581a2b4..eeffb3481 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/eShopOnContainers.Droid.csproj +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/eShopOnContainers.Droid.csproj @@ -307,6 +307,21 @@ + + + + + + + + + + + + + + +