DEM 2 1.0.407 Release Notes
Released 06.08.2020
This release continues to improve existing features while introducing a few significant feature contributions.
What's new
- Resolved issue with swipe and slider after migration to Android X
- Resolved issue with checkbox after migration to Android X
- We moved Export Renderer from device to solution to support modifying a DEM V2 custom renderer.
- DEM V2 documentation - what's new
Bug fixed
Staging
- 34304
- 34321
- 34320
- 34332
- 34297
- 34306
- 34305
- 34335
- 34299
- 34303
- 34316
- 34317
- 34315
- 34307
- 34300
- 34301
- 34318
- 34302
Halk
External
- 1151, 1152, 1187, 1242, 1275,
- 1283, 1365, 1381, 1383, 1435,
- 1439, 1444, 1445, 1447
Internal
- 857
Spare
- Added biometric pinchange alert
- CreditCardFacility Extended with
[DataMember(Name = "revolving-amount", EmitDefaultValue = false)]
public decimal? RevolvingAmount { get; set; }
Nova
We changed the method GetLongFormatAccountNumber
to use implementation of IAccountNumberDisplayFormatter
from DI for displaying long account format
public static IAccountNumberDisplayFormatter DefaultAccountNumberDisplayFormatter;
public static string GetLongFormatAccountNumber(this string accountNumber, string parametar)
{
if (String.IsNullOrWhiteSpace(accountNumber))
{
return String.Empty;
}
if (DefaultAccountNumberDisplayFormatter is null)
{
DefaultAccountNumberDisplayFormatter = DEMApplication.Current.ResolveService<IAccountNumberDisplayFormatter>();
}
return accountNumber.GetLongFormatAccountNumber(parametar, DefaultAccountNumberDisplayFormatter);
}
public static string GetLongFormatAccountNumber(this string accountNumber, string parametar, IAccountNumberDisplayFormatter formatter == null)
{
if (String.IsNullOrWhiteSpace(accountNumber))
{
return String.Empty;
}
if (formatter is null)
{
return accountNumber;
}
else
{
return formatter.Format(accountNumber, parametar);
}
}
You need now to register class that is responsible for display account number formatting and if there is no such class above method will return data as is. For Halk we use this in application
typeCatalog.Add(new AppServiceInfo<AccountNumberDisplayFormatter3_13_2, IAccountNumberDisplayFormatter>());
Erste
Fresh new UI Styles
<Style x:Key="EntryTextStyle" TargetType="ctrl:AEntry">
<Setter Property="ActivePlaceholderColor" Value="{StaticResource EntryActivePlaceholderColor}" />
<Setter Property="TextColor" Value="{StaticResource EntryTextColor}" />
<Setter Property="PlaceholderColor" Value="{StaticResource EntryPlaceholderColor}" />
<Setter Property="BackgroundColor" Value="{StaticResource EntryBackgroundColor}" />
</Style>
<Style x:Key="EntryAmountStyle" TargetType="ctrl:AEntry">
<Setter Property="ActivePlaceholderColor" Value="{StaticResource EntryActivePlaceholderColor}" />
<Setter Property="TextColor" Value="{StaticResource EntryTextColor}" />
<Setter Property="PlaceholderColor" Value="{StaticResource EntryPlaceholderColor}" />
<Setter Property="BackgroundColor" Value="{StaticResource E
<Setter Property="VerticalOptions" Value="Center"/>ntryBackgroundColor}" />
<Setter Property="HorizontalTextAlignment" Value="End"/>
<Setter Property="IsSpellCheckEnabled" Value="False"/>
<Setter Property="IsTextPredictionEnabled" Value="False"/>
<Setter Property="Keyboard" Value="Numeric"/>
</Style>
<Style x:Key="EntryDateStyle" TargetType="ctrl:AEntry">
<Setter Property="ActivePlaceholderColor" Value="{StaticResource EntryActivePlaceholderColor}" />
<Setter Property="TextColor" Value="{StaticResource EntryTextColor}" />
<Setter Property="PlaceholderColor" Value="{StaticResource EntryPlaceholderColor}" />
<Setter Property="BackgroundColor" Value="{StaticResource EntryBackgroundColor}" />
<Setter Property="HorizontalOptions" Value="FillAndExpand"/>
<Setter Property="VerticalOptions" Value="FillAndExpand"/>
</Style>
<Style x:Key="EnrtyNumberStyle" TargetType="ctrl:AEntry">
<Setter Property="ActivePlaceholderColor" Value="{StaticResource EntryActivePlaceholderColor}" />
<Setter Property="TextColor" Value="{StaticResource EntryTextColor}" />
<Setter Property="PlaceholderColor" Value="{StaticResource EntryPlaceholderColor}" />
<Setter Property="BackgroundColor" Value="{StaticResource EntryBackgroundColor}" />
</Style>
<Style x:Key="EntrySelectionStyle" TargetType="ctrl:AEntry">
<Setter Property="ActivePlaceholderColor" Value="{StaticResource EntryActivePlaceholderColor}" />
<Setter Property="TextColor" Value="{StaticResource EntryTextColor}" />
<Setter Property="PlaceholderColor" Value="{StaticResource DarkGray}" />
<Setter Property="BackgroundColor" Value="Transparent" />
<Setter Property="VerticalOptions" Value="FillAndExpand" />
<Setter Property="HorizontalOptions" Value="FillAndExpand" />
</Style>
<Style x:Key="EntryAmountComboBoxStyle" TargetType="ctrl:AComboBox">
<Setter Property="ActivePlaceholderColor" Value="{StaticResource EntryActivePlaceholderColor}" />
<Setter Property="TextColor" Value="{StaticResource EntryTextColor}" />
<Setter Property="PlaceholderColor" Value="{StaticResource EntryPlaceholderColor}" />
<Setter Property="BackgroundColor" Value="{StaticResource EntryBackgroundColor}" />
</Style>
<Style x:Key="EntryComboBoxStyle" TargetType="ctrl:AComboBox">
<Setter Property="ActivePlaceholderColor" Value="{StaticResource EntryActivePlaceholderColor}" />
<Setter Property="TextColor" Value="{StaticResource EntryTextColor}" />
<Setter Property="PlaceholderColor" Value="{StaticResource EntryPlaceholderColor}" />
<Setter Property="BackgroundColor" Value="{StaticResource EntryBackgroundColor}" />
</Style>
<Style x:Key="EntryLookupStyle" TargetType="ctrl:AComboBox">
<Setter Property="ActivePlaceholderColor" Value="{StaticResource EntryActivePlaceholderColor}" />
<Setter Property="TextColor" Value="{StaticResource EntryTextColor}" />
<Setter Property="PlaceholderColor" Value="{StaticResource EntryPlaceholderColor}" />
<Setter Property="BackgroundColor" Value="{StaticResource EntryBackgroundColor}" />
</Style>
<Style x:Key="LeftNavigationButton" TargetType="Button">
<Setter Property="FontSize" Value="20"/>
<Setter Property="FontFamily" Value="MediumFont"/>
<Setter Property="HeightRequest" Value="60"/>
<Setter Property="BorderRadius" Value="0"/>
<Setter Property="BorderWidth" Value="0"/>
<Setter Property="Margin" Value="-4,0,-4,0"/>
<Setter Property="BackgroundColor" Value="{StaticResource DarkGray}"/>
<Setter Property="TextColor" Value="{StaticResource WhiteColor}"/>
<Setter Property="VerticalOptions" Value="EndAndExpand"/>
<Setter Property="HorizontalOptions" Value="FillAndExpand"/>
</Style>
<Style x:Key="RightNavigationButton" TargetType="Button">
<Setter Property="FontSize" Value="20"/>
<Setter Property="FontFamily" Value="MediumFont"/>
<Setter Property="HeightRequest" Value="60"/>
<Setter Property="BorderRadius" Value="0"/>
<Setter Property="BorderWidth" Value="0"/>
<Setter Property="Margin" Value="-4,0,-4,0"/>
<Setter Property="BackgroundColor" Value="{StaticResource EdgePurple}"/>
<Setter Property="TextColor" Value="{StaticResource WhiteColor}"/>
<Setter Property="VerticalOptions" Value="EndAndExpand"/>
<Setter Property="HorizontalOptions" Value="FillAndExpand"/>
</Style>
Latest application on AppCentar
Halk - SxS MToken - SC 24x7 UAT
DEM V2 - Staging - SxS on Halk test
Packages (407)
Contributions welcome!
If you have one or more of some common pieces of code that you are always replicating across delivery apps, don't hesitate to contribute! We are the first NuGet package you install when creating a new .Net Mobile banking app!
Please have a look at our contribution guide before you get started.
If you need any help getting started, please let us know.
Breaking Changes
Add new images to droid and ios solution
<x:String x:Key="SliderLeftArrow">_DEM_left_arrow2.png</x:String>
<x:String x:Key="SliderRightArrow">_DEM_right_arrow2.png</x:String>
<x:String x:Key="SwipeLeftArrow">_DEM_left_arrow.png</x:String>
<x:String x:Key="SwipeRightArrow">_DEM_right_arrow.png</x:String>
Add reference to the AssecoSEE.DEM.Components and declares all renderes from Device project in AssemblyInfo.cs
of the corespoding device project
iOS
[assembly: ExportRenderer(typeof(AssecoSEE.DEM.Components.Controls.AComboBox), typeof(AssecoSEE.DEM.Components.Controls.iOS.Renderers.AComboBoxRenderer))]
[assembly: ExportRenderer(typeof(AssecoSEE.DEM.Components.Controls.AEntry), typeof(AssecoSEE.DEM.Components.Controls.iOS.Renderers.AEntryRenderer))]
[assembly: ExportRenderer(typeof(AssecoSEE.DEM.Components.Controls.ContextMenuScrollView), typeof(AssecoSEE.DEM.Framework.iOS.Renderers.ContextMenuScrollViewRenderer))]
[assembly: ExportRenderer(typeof(ContentPage), typeof(AssecoSEE.DEM.Framework.iOS.Renderers.CustomContentPageRenderer))]
[assembly: ExportRenderer(typeof(DatePicker), typeof(AssecoSEE.DEM.Framework.iOS.Renderers.CustomDatePickerRenderer))]
[assembly: ExportRenderer(typeof(Entry), typeof(AssecoSEE.DEM.Framework.iOS.Renderers.CustomEntryRenderer))]
[assembly: ExportRenderer(typeof(AssecoSEE.DEM.Components.Controls.DialogMenuList), typeof(AssecoSEE.DEM.Devices.iOS.Renderers.CustomListViewRenderer))]
[assembly: ExportRenderer(typeof(AssecoSEE.DEM.Components.Controls.CustomMap), typeof(AssecoSEE.DEM.Framework.iOS.Renderers.CustomMapRenderer))]
[assembly: ExportRenderer(typeof(NavigationPage), typeof(AssecoSEE.DEM.Framework.iOS.Renderers.CustomNavigationRenderer))]
[assembly: ExportRenderer(typeof(Picker), typeof(AssecoSEE.DEM.Framework.iOS.Renderers.CustomPickerRenderer))]
[assembly: ExportRenderer(typeof(AssecoSEE.DEM.Components.Controls.DraggableListView), typeof(AssecoSEE.DEM.Framework.iOS.Renderers.DragAndDropListViewRenderer))]
[assembly: ExportRenderer(typeof(AssecoSEE.DEM.Components.Controls.DraggableViewCell), typeof(AssecoSEE.DEM.Framework.iOS.Renderers.DragAndDropViewCellRenderer))]
[assembly: ExportRenderer(typeof(AssecoSEE.DEM.Components.Components.GradientBoxView), typeof(AssecoSEE.DEM.Framework.iOS.Renderers.GradientBoxViewRenderer))]
[assembly: ExportRenderer(typeof(AssecoSEE.DEM.Components.Components.PinEntryField), typeof(AssecoSEE.DEM.Framework.iOS.Renderers.PinEntryFieldRenderer))]
[assembly: ExportRenderer(typeof((AssecoSEE.DEM.Core.Pages.UsecaseTabedPage), typeof(AssecoSEE.DEM.Devices.iOS.Renderers.UsecaseTabbedPageRenderer))]
[assembly: ExportRenderer(typeof(AssecoSEE.DEM.Components.Controls.WebViewer), typeof(AssecoSEE.DEM.Framework.iOS.Renderers.WebViewRender))]
Droid
[assembly: Xamarin.Forms.ExportRenderer(typeof(AssecoSEE.DEM.Components.Controls.AComboBox), typeof(AssecoSEE.DEM.Components.Controls.Android.Renderers.AComboBoxRenderer))]
[assembly: Xamarin.Forms.ExportRenderer(typeof(AssecoSEE.DEM.Components.Controls.AEntry), typeof(AssecoSEE.DEM.Components.Controls.Android.Renderers.AEntryRenderer))]
[assembly: Xamarin.Forms.ExportRenderer(typeof(AssecoSEE.DEM.Components.Controls.AAutoSuggestBox), typeof(AssecoSEE.DEM.Components.Controls.Platform.Android.AutoSuggestBoxRenderer))]
[assembly: Xamarin.Forms.ExportRenderer(typeof(AssecoSEE.DEM.Components.Controls.ContextMenuScrollView), typeof(AssecoSEE.DEM.Framework.Android.Renderers.ContextMenuScrollViewRenderer))]
[assembly: Xamarin.Forms.ExportRenderer(typeof(Xamarin.Forms.Button), typeof(AssecoSEE.DEM.Framework.Android.Renderers.CustomButtonRenderer))]
[assembly: Xamarin.Forms.ExportRenderer(typeof(AssecoSEE.DEM.Components.Controls.DialogMenuList), typeof(AssecoSEE.DEM.Devices.Droid.Renderers.CustomListViewRenderer))]
[assembly: Xamarin.Forms.ExportRenderer(typeof(AssecoSEE.DEM.Components.Controls.DraggableListView), typeof(AssecoSEE.DEM.Framework.Android.Renderers.DragAndDropListViewRenderer))]
[assembly: Xamarin.Forms.ExportRenderer(typeof(AssecoSEE.DEM.Components.Controls.DraggableViewCell), typeof(AssecoSEE.DEM.Framework.Android.Renderers.DragAndDropViewCellRenderer))]
[assembly: Xamarin.Forms.ExportRenderer(typeof(AssecoSEE.DEM.Components.Controls.CustomMap), typeof(AssecoSEE.DEM.Framework.Android.Renderers.CustomMapRenderer))]
[assembly: Xamarin.Forms.ExportRenderer(typeof(AssecoSEE.DEM.Components.Controls.FontAwesomeLabel), typeof(AssecoSEE.DEM.Framework.Android.Renderers.FontAwesomeLabelRenderer))]
[assembly: Xamarin.Forms.ExportRenderer(typeof(AssecoSEE.DEM.Components.Components.GradientBoxView), typeof(AssecoSEE.DEM.Framework.Android.Renderers.GradientBoxViewRenderer))]
[assembly: Xamarin.Forms.ExportRenderer(typeof(AssecoSEE.DEM.Components.Controls.PancakeView), typeof(AssecoSEE.DEM.Framework.Android.Renderers.PancakeViewRenderer))]
[assembly: Xamarin.Forms.ExportRenderer(typeof(AssecoSEE.DEM.Components.Components.PinEntryField), typeof(AssecoSEE.DEM.Framework.Android.Renderers.PinEntryFieldRenderer))]
[assembly: Xamarin.Forms.ExportRenderer(typeof(AssecoSEE.DEM.Core.Pages.UsecaseTabedPage), typeof(AssecoSEE.DEM.Devices.Droid.Renderers.UsecaseTabbedPageRenderer))]
[assembly: Xamarin.Forms.ExportRenderer(typeof(AssecoSEE.DEM.Components.Controls.WebViewer), typeof(AssecoSEE.DEM.Framework.Android.Renderers.WebViewerRender))]
Useful Links
Thank you to our community for helping to make DEM even better! Mobile Team