NeoMAD 3.8 release notes¶
April 7, 2015
New features¶
SQLite database¶
The com.neomades.database
package provides SQLite database API in order to store and read data in local
SQLite databases (in the device).
Network queries¶
The com.neomades.content
package is a network library that makes networking for applications easier and
most importantly, faster. It simplifies RPC-type operations used to populate a UI, such as fetching a page of
search results as structured data.
This package is not suitable for large download or streaming operations, since com.neomades.content
holds
all responses in memory during parsing. For large download operations, HttpRequest
must be used.
Note: the new RSSReaderExample sample application provides a working example of how to use this package.
Event bus¶
com.neomades.event
is an event bus designed to decouple different parts of your application while still
allowing them to communicate efficiently.
Note: the new RSSReaderExample sample application provides a working example of how to use this package.
Android 5.0¶
Applications built for the ANDROID
target with ActionBar
enabled use the “Material Design” theme.
Android Reference Libraries¶
It’s now possible to use external Android Reference Libraries provided as projects (like Facebook, Google Play
Services, …) in NeoMAD projects. The URS provides a new tag <specific><android><project>
to declare them.
The <project>
tag has a path
attribute to specify the location of the external project.
Log¶
The com.neomades.util.Log
class allows to log traces with different levels of severity (INFO, WARN, DEBUG,
ERROR).
Other new features and enhancements¶
- NeoMAD is now compatible with JRE 1.8.
- New classes and methods:
com.neomades.platform.ApplicationDelegate
: intented to be used in specific-code in order to get access to the native lifecycle of the applicationcom.neomades.graphics.Density
: convert values between dp units and pixel unitscom.neomades.ui.listeners.ListScrollListener
: listen to changes in the scroll position of aListView
Application.isCreated()
andApplication.isStarted()
Controller.getScreenCount()
: get the number of screens in the back stackscrollToPosition()
andscrollToLeft()
inListView
andHorizontalListView
: manage scroll positionMenuItem.setTextColor()
: change the color of the text of aMenuItem
MenuItem.setVisible()
andMenuItem.isVisible()
: manage the visibility of aMenuItem
Screen.getOrientation()
: get the device orientationScreen.setBackground()
: change the background of aScreen
Screen.setTitleKeepNativeCase()
: enable custom string case on titleScrollView.scrollTo()
: manage scroll positionStringUtils.replaceAll()
: replace strings using regular expressionView.runOnUiThread()
: run a task in the UI thread from aView
- Improve the speed of:
FileInputStream
andFileOutputStream
String.getBytes()
- Windows Phone and Windows 8:
- Now, when building for the Windows Phone and Windows 8 targets, 2 binaries are generated (x86 and ARM). The x86 version is for simulator or PC, the ARM version is for phones and tablets.
- The value of the
applicationidentifier
tag is used for Windows 8 as Application Store identifier. If not set, the package name of the application is used instead. - Signature for Windows Store has been implemented. It is possible to declare a
<windows>
tag inside the<signature>
tag in the URS file. This tag contains two mandatory attributes:packageCertificateKeyFile
for .pfx file andpackageCertificateThumbprint
. RichTextLabel
is now supported on Windows Phone and Windows 8.GridView
is now supported on Windows Phone and Windows 8.- Pull-To-Refresh is now supported on Windows Phone.
ProgressBar
is now supported on Windows Phone.EditMode.CAP_WORD
andEditMode.AUTOCORRECT_OFF
are now supported byTextArea
andTextField
on Windows Phone.Application.setForcedTheme()
is now supported on Windows 8.- The support of
ListView
andHorizontalListView
has been improved, they are now using the best native component (ListBox
,LongListSelector
,ListView
) for each Windows platform and version.
Compatibility changes¶
WINDOWSPHONE71
toWINDOWSPHONE78
targets have been removed. Please use theWINDOWSPHONE80
target instead.- The deprecated
ANDROID22
toANDROID40
targets have been removed. - Applications built for the
ANDROID
target withActionBar
enabled have a new look & feel for Android devices 4.0 and later (“Material Design” look & feel, new Android ActionBar). - Android SDK requirements have been changed: now NeoMAD needs SDK Platform with API level 21, Android SDK Tools revision 24 and Android SDK Build-tools revision 21 or later.
- The
View.setBackgroundColor(null)
andView.setBackgroundImage(null)
method calls will throw aNullPointerException
. To reset the background of aView
callsetBackground(null)
.
Fixes¶
- iOS:
- Fix a bug in
JSONObject
with JSON strings encoded in UTF-8 - Fix NeoMADSetup to be compatible with JRE 1.7
- Fix TransCompiler bug with inner classes with declaring class field
- Fix
ScrollView
parent to be redrawn when the scroll size has changed - Fix
FrameLayout
: the margins of views inside the layout were not always taken into account, depending of the layout alignment of the view - Fix
HttpRequest
in background thread: sometimes when HTTP responses were very fast, the thread stayed lock and the response never arrived - Fix
View.setBackgroundImage(Image)
andView.setBackgroundColor(Color)
: they were throwing aNullPointerException
if the image or the color was null - Fix
HttpRequest.setMethod()
exception bug withDELETE
,TRACE
,OPTIONS
values
- Fix a bug in
- Android:
- Fix
HttpRequest
auto-redirecting URLs in API Level 4 (e.g. it occurs when HTTP response is “301 Moved Permanently”) - Fix
FrameLayout
: layout alignment of views inside the FrameLayout was broken if the views had a top or left margin - Fix
Keyboard
to be hidden whenTextField
orTextArea
were present in theScreen
- Fix
View.setBackgroundImage(Image)
andView.setBackgroundColor(Color)
: they were throwing aNullPointerException
if the image or the color was null
- Fix
- Windows Phone and Windows 8:
- Fix
String
constructor with byte array: remove ‘0’ characters at the end of created string - Fix
File
root folder in Windows 8 - Fix
File.listFiles(), File.mkdir() and File.mkdirs()
in order to use the right separator in Windows 8 - Fix
TextField
andTextArea
when default text is on and an empty text is set - Fix
StringUtils.replaceAll()
, regular expressions are now supported - Fix
ImageLabel
default layout alignment (HCENTER | VCENTER
) - Fix
Timer.schedule()
bug, the corresponding thread was never destructed - Fix
TextLabel.setLines()
andTextLabel.setMaxLines()
- Fix
CustomDialog
position: now the screen’s title is under the custom dialog - Fix
ScrollView.scrollTo()
for Windows 8 - Fix
CustomDialog
default content alignment for Windows 8 - Fix
Controller.resetScreenStack()
for Windows 8 - Fix
SlideScreen
default touch areas to be on the edge of the screen - Fix
TextLabel
marquee alignment when its width is shorter than the available width - Fix
HashTable.equals()
method - Fix
Vector.equals()
method - Fix
ViewPager.destroyPage()
to be called with the right page index - Fix
DatePicker.openChooser()
crash when the month of the date was January - Fix
HashTable.equals()
to return true if contents are equals - Fix
ImageButton.setHeight()
to keep forced size - Fix
ListView
withoutItemClickListener
to remove sink effect - Fix
ComboBox.openChooser()
over dialog to go back to the previous opened dialog - Fix
ListView
andViewPager
scrolling bug with finger - Fix
Cursor.getColumnName()
bug in database - Fix
Network.isConnected()
bug with Ethernet connection - Fix
TextLabel.setClickListener()
: the behaviour was different from the other platform; setting aClickListener
will enable clickable mode - Fix
TextField.setTextColor()
bug - Fix
WebView
bug: in some cases zoom with pinch gesture did not work - Fix
ImageButton
: remove system background color effect when clicking on the button - Fix
Screen
default background color when a forced theme is applied on theApplication
- Fix
View.setBackgroundImage(Image)
andView.setBackgroundColor(Color)
: they were throwing aNullPointerException
if the image or the color was null - Fix
ViewPager
when more than 5 pages are used - Fix memory leaks in screen stack
- Fix memory leaks in
MenuItem
- Fix memory leaks in
ViewPager
- Fix
- Eclipse Plugin:
- Fix bug: if Android SDK path or Windows MSBuild paths were modified in neomad.properties, the new value was not taken into account until Eclipse was restarted
- Fix bug: layout and background XML wizards did not open if the root of the NeoMAD project was not selected