5.2 Release Notes¶
Mobile Development Kit Client 5.2.7¶
This patch release provides the following minor update and important bug fixes.
- Adding multiple attachments works properly in Android
- Multiple duration pickers redraw correctly on scroll in a
FormCell
page in Android - Context binding works correctly in Tab Item, when triggering
toolbar
itemonPress
event from Tab parent page toolbar - Size of
sap-icon
is rendered correctly in certain Android device - Page redraw is refreshing correctly when device is in offline mode in iOS
- App no longer crash on
CreateMedia
in certain situation in Android
Mobile Development Kit Client 5.2.6¶
This patch release provides the following minor update and important bug fixes.
- App no longer crash when executing sync in Hungary (Magyar) language
- Upgrade to SAP BTP SDK for Android version 3.3.7
Mobile Development Kit Client 5.2.5¶
This patch release provides the following minor update and important bug fixes.
- OData initialization will no longer fail with
BAD_ENCRYPTION_KEY
error when user re-onboard after logging out - Pressing a "_blank" target link in the onboarding login will now open within the
webview
in iOS - App will no longer freeze when returning certain long text in the description of an Object Cell in iOS
- Attachment's Photo Library selection dialog can be properly opened on modal page in iOS
- App update can perform successfully when onboarded via some specific format QR code from Cloud Foundry
- Styling can still applied correctly when class is only in
light.less
but missing indark.less
file SimplePropertyFormCell
&NoteFormCell
cursor set to correct position aftersetValue
is triggered in the rule- Mobile Development Kit dependency installer can work properly on specific Windows environments with permission constrain
- Keyboard can be properly closed by pressing other part of the page in iOS
- Documentation update for iOS ToolBar
background
style property - Upgrade to SAP BTP SDK for iOS version 5.1.19
- Upgrade to SAP BTP SDK for Android version 3.3.6
Mobile Development Kit Client 5.2.4¶
This patch release provides the following minor update and important bug fixes.
- Dialog will no longer be randomly closed after scanning barcode in iOS
- Calling
getSelectedItems
inOnSelectionChanged
will now return correct number of items in Android - Dynamic page generated via
PageMetadata
in the navigation action will now handle events and context correctly - Android
AAB
file will no longer contain additionalsh
language that cause Play Store rejection - Swipe Context Menu now support localization formatter
- Upgrade to SAP BTP SDK for iOS version 5.1.16
- Upgrade to SAP BTP SDK for Android version 3.3.5
Mobile Development Kit Client 5.2.3¶
This patch release provides the following minor update and important bug fixes.
- Initial offline data sync lasting more than 10 minutes will no longer fails in iOS
- Onboarding no longer fail in certain web view failure scenario in iOS
OnSwipe
rules from an Object Cell now have the correct binding- App no longer crashes on double tapping button
- App styles are now applied correctly
- Swipe-To-Delete no longer causes app to crash
- Text on search bar is easier to read in dark mode
- Screen no longer flashes bright white screen in dark mode
- Add Signature line is now rendered in the correct position
- Colors are now updated correctly during Light/Dark mode switching using Control Center in iOS
- Upgrade to Xcode 12.5
- Upgrade to SAP BTP SDK for Android version 5.1.15
Mobile Development Kit Client 5.2.2¶
This patch release provides the following minor update and important bug fixes.
- App crashes on Android 11 while a sync is running
SkipReset:true
in Logout action on Android doesn't work- The alert window on Android throws a layout error
AllowDefaultValueIfOneItem
causesOnValueChange
Event to misfire- Key value cells and object cells don't have the right background color on iOS
- Action Toolbar (bottom bar) is the wrong color in Dark Mode
- Message on the banner is not fully displayed on Android
- Text cursors are the wrong color on Android
- No toast message or any messages on Android when device is registered successfully
Mobile Development Kit Client 5.2.1¶
This patch release provides the following minor update and important bug fixes.
OnPress
event doesn't work on theActionBar
items that appeared aftersetActionBarItemVisible
for Web applicationKeyValue
section not refreshingOnLinkDataReceived
is not triggered when app is running in background on Android- When closing a modal transaction after a partial upload, the app crashes on Android
- After pending transactions of previous user is synced, the transactions are not displayed for current user on Android
- Database is in inconsistent state in Android after doing certain operations on Android
- App crashes when re-open the app if press back button on switch user page on Android
- Connection Settings set through
adb
commands are not loaded the first time on Android - Current page reference is not returned correctly in Mobile Development Kit on Android
setActionBinding
doesn't work in theOnLinkDataReceived
handler on iOS device
Mobile Development Kit Client 5.2¶
Notable new or changed features for the Mobile Development Kit Client 5.2
New UI Controls¶
Multi-Select¶
Object Table now supports multi-selection mode.
It can be enabled via Selection
> Mode
property or via the setSelectionMode
API in Object Table SectionProxy
You can also allow users to enable it via long press on any of the object cell item with the LongPressToEnable
property
You can get all of the selected values via the getSelectedItems
API or the last changed item via the getSelectionChangedItem
We have also provided two new events on Object Table that you can listen to:
OnSelectionChanged
- This will be triggered whenever a user selects or deselects an item.OnSelectionModeChanged
- This is triggered whenever the selection mode changes, for example, from None to Multiple and vice versa, and allows the app to hide or show certain controls when in or out of selection mode.
Support Custom Accessory Icon in Object Cell¶
You can now provide custom accessory icon by setting AccessoryButtonIcon
property or AccessoryButtonText
(iOS only).
AccessoryButtonIcon
takes precedence over AccessoryButtonText
.
Defining these properties overrides the values defined for AccessoryType
and ProgressIndicator
.
The event for handling these is still OnAccessoryButtonPress
Note that this feature is currently only supported for iOS and Android, and not for Web applications.
Support KPISection
¶
KPISection
is a SectionedTable
control that manages and displays the different Key Performance Indicators.
Enhancement¶
Multi User Support for Android¶
Mobile Development Kit Client now supports multi-user login capability. This allows a Mobile Development Kit Client app on a device to be securely shared across multiple users. For more details please see Multi User Support.
Supporting Themes With Multiple LESS
Files¶
You can now provide multiple LESS
files for different kinds of themes and you can switch between them at runtime.
We provide new APIs to help you switch between these themes:
SetTheme
Action - Allows you to use action to set the theme in the applicationClientAPI
setTheme
- Allows you to use JavaScript function to set the theme in the application.ClientAPI
getAvailableThemes
- Returns an array of available themes (it is based on the file name of theLESS
files without the.dark
/.light
post-fix)
Supporting Dark Mode¶
SAP Mobile Services now supports dark mode in both iOS and Android by default. The UI automatically changes to dark mode when the device setting is changed to dark mode.
To allow your app to maximize the customization, you can also provide light and dark mode versions of LESS
.
You can also provide light and dark mode versions of images in the Images
folder of your project.
For more details please see Dark Mode Support.
Note
There is currently no support to force the app to light mode, so make sure any extensions or custom styling are adapted to support dark mode when you upgrade to this version.
Data Subscription Enhancements¶
DataSubscription
is now enhanced to redraw the UI more efficiently.
Operations | Previous Behavior | New Behavior |
---|---|---|
Create Entity | Entire UI is reset. If the UI is a table bound with data binding, it is reset it to first page of data. | Entire UI is redrawn. If the UI is a table bound with data binding, it is redrawn up to the last loaded page of data to keep the scroll position. |
Delete Entity | Entire UI is reset, if the UI is a table bound with data binding, it will reset it to first page of data | Entire UI will be redrawn, if the UI is a table bound with data binding, we will redraw it up to the last loaded page of data to keep the scroll position |
Update Entity | Entire UI is reset, if the UI is a table bound with data binding, it will reset it to first page of data | If the table has data binding, we will look for the cell that's bound to the same read link of the changed entity and refresh only that cell |
Support Deep Link¶
You can now use Deep Link from a web page, email or from another app to launch the target app and then execute certain actions such as navigating to a page or may be approve a request.
For more details please see Deep Link Support
Web - Bottom Navigation Control¶
We are pleased to announce that Bottom Navigation control is now supported in the web runtime.
Web - Support Data Paging Loading Indicator¶
Web version now also supports DataPaging
property.
You can enable the loading indicator and customize the text. The loading indicator appears as the user scrolls to the bottom of the list and the app starts loading the next set of data, and is dismissed when the next set of content is rendered.
Add Support for Header UseTopPadding
and Footer UseBottomPadding
on Grid Table¶
For iOS only, use the Header UseTopPadding
and Footer UseBottomPadding
with Grid Table to add padding between sections.
Support Multiple Sections Search in Tabs Page in Android¶
Search is now supported across multiple searchable section controls in a Tab page. This is an enhancement over earlier release where Search would be disabled in case of more than one control in a Tab page for Android.
Support Data Paging on Last Section in Android¶
Android now supports data paging for last collection control in a SectionedTable
. The order of the control is determined on the basis of there occurrence in the metadata. This is an enhancement over earlier release where paging would be disabled if there are more than one control in a SectionedTable
. Here are some sample scenarios:
Scenario 1: In a SectionedTable
I have the following sections:
- Contact Table - This table will not be paging enabled
- Object Collection - This table will not be paging enabled
- Object Table - This table will be paging enabled
Scenario 2: In a SectionedTable
I have the following sections:
- Form Cell Section - Does not support paging
- Button Table Section - Does not support paging
- Object Collection - This table will be paging enabled
Scenario 3: In a SectionedTable
I have the following sections:
- Object Collection - This table will not be paging enabled
- Object Table - This table will not be paging enabled because it is not the last section
- Form Cell Section - Does not support paging
Support SkipReset
Flag in Logout Action¶
Skip Reset flag in Logout action can be used to skip the client reset.
Support setSideDrawerButton
Client API for SideDrawer
¶
setSideDrawerButton
API can be used to dynamically modify the DrawerButton
for SideDrawer
.
Support AlwaysShowDrawerButton
in SideDrawer
¶
AlwaysShowDrawerButton
can be used to show DrawerButton
on every page. In Android once this property is enabled, the back button would be hidden and instead hardware back button needs to be used.
Support of Rule for SideDrawer
Items¶
SideDrawer
Items now support rule, this now allows to generate items array during runtime.
Deprecate ActionBar
Text Property¶
Text property in ActionBar
is now deprecated and has been replaced with Caption.
Deprecate ToolBar Controls and Image Property¶
Controls array in ToolBar is now deprecated and has been replace with Items. Image property in ToolBar is now deprecated and has been replace with Icon.
Support Style Enhancements for Object Cells¶
Object Cells now supports couple of new styling properties
- BackgroundColor - This can be used to style the background color for Object Cells
DetailImageText
- This can be used to style theDetailImageText
Support isAppInMultiUserMode
Client API¶
isAppInMultiUserMode
API determines if the application is in single or multi user mode.
Support Rules for Result Object in Filter Page¶
Result object in Filter Page now supports rule. This allows further customizations to the filter and sorter values returned out of user selection. This also expands the current support for Filters and Sorter to unsupported controls such as DatePickerFormCell
, SegmentedButtonFormCell
and others. With-in the rule use the createFilterCriteria
to create FilterCriteria
object and finally return an array of FilterCriteria
objects.
OData Service¶
New ODataProvider
API¶
You can now get handle to OData provider via the ClientAPI.getODataProvider(serviceName)
.
This class gets information about the OData provider such as whether it's in offline mode (isOfflineEnabled()
), or is initialized (isInitialized()
).
For offline enabled OData provider, you can also get its offline parameters (getOfflineParameters()
), where you can get or set its custom headers.
See ODataProviderProxy
for more details.
Support EnableUndoLocalCreation
and EnableRequestQueueOptimization
Offline Options¶
EnableUndoLocalCreation
undo local operations on an entity. For example ifEnableUndoLocalCreation
is enabled and create, update and delete operations are performed on an entity. While uploading all the 3 requests will be removed and therefore will not be sent to the service back end.EnableRequestQueueOptimization
combines multiple OData operations on an entity into one single operation. For example ifEnableRequestQueueOptimization
is enabled a create and multiple updates on an entity will be uploaded as one single create request.
Branded Client¶
Better Support for App_Resources Files Overrides¶
Added support to override only a part of resources files in <generated-project>/app/App_Resources
.
It is done by specifying your overriding files in the .mdkproject/App_Resources_Merge
.
Files in the .mdkproject/App_Resources_Merge
folder support merge (replace/add) for the following file types, other files will be overwritten.
See Overriding App Resources for more details.
Support ObfuscateEmail
in BrandedSettings.json¶
ObfuscateEmail
property can be used to obfuscate email address on the sign in screen. The default value of this flag is false. This property is supported on Android only.
Mobile Development Kit Editor 2104¶
Title | Type | Environment | Description | Available as of |
---|---|---|---|---|
Support Client 5.2 metadata | New | Neo (Web IDE) | Support new metadata changes for Client 5.2 | Apr 20, 2021 |
Support Client 5.2 metadata | New | CF (Business Application Studio) | Support new metadata changes for Client 5.2 as Business Application Studio extension | Apr 20, 2021 |
Support local run for Web applications | New | CF (Business Application Studio) | Support local run for Web applications in Business Application Studio | Apr 20, 2021 |