Show / Hide Table of Contents

    DEM 2 1.0.407 Release Notes

    Released 06.08.2020

    View in browser

    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

    • Android 70.93 MB (117)
    • iOS 64.91 MB (57)

    DEM V2 - Staging - SxS on Halk test

    • Android 59.56 MB (223)
    • iOS 67.11 MB (207)

    Packages (407)

    NuGet feed AzureDevOps

    Build status

    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

    • Roadmap
    • Configuration
    • Current experimental flags
    • Weekly Mobile Newsletter - Issue 21

    Thank you to our community for helping to make DEM even better! Mobile Team

    Back to top Copyright 2020 Asseco SEE