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 aListViewApplication.isCreated()andApplication.isStarted()Controller.getScreenCount(): get the number of screens in the back stackscrollToPosition()andscrollToLeft()inListViewandHorizontalListView: manage scroll positionMenuItem.setTextColor(): change the color of the text of aMenuItemMenuItem.setVisible()andMenuItem.isVisible(): manage the visibility of aMenuItemScreen.getOrientation(): get the device orientationScreen.setBackground(): change the background of aScreenScreen.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:
FileInputStreamandFileOutputStreamString.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
applicationidentifiertag 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:packageCertificateKeyFilefor .pfx file andpackageCertificateThumbprint. RichTextLabelis now supported on Windows Phone and Windows 8.GridViewis now supported on Windows Phone and Windows 8.- Pull-To-Refresh is now supported on Windows Phone.
ProgressBaris now supported on Windows Phone.EditMode.CAP_WORDandEditMode.AUTOCORRECT_OFFare now supported byTextAreaandTextFieldon Windows Phone.Application.setForcedTheme()is now supported on Windows 8.- The support of
ListViewandHorizontalListViewhas been improved, they are now using the best native component (ListBox,LongListSelector,ListView) for each Windows platform and version.
Compatibility changes¶
WINDOWSPHONE71toWINDOWSPHONE78targets have been removed. Please use theWINDOWSPHONE80target instead.- The deprecated
ANDROID22toANDROID40targets have been removed. - Applications built for the
ANDROIDtarget withActionBarenabled 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 aViewcallsetBackground(null).
Fixes¶
- iOS:
- Fix a bug in
JSONObjectwith 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
ScrollViewparent 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
HttpRequestin 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 aNullPointerExceptionif the image or the color was null - Fix
HttpRequest.setMethod()exception bug withDELETE,TRACE,OPTIONSvalues
- Fix a bug in
- Android:
- Fix
HttpRequestauto-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
Keyboardto be hidden whenTextFieldorTextAreawere present in theScreen - Fix
View.setBackgroundImage(Image)andView.setBackgroundColor(Color): they were throwing aNullPointerExceptionif the image or the color was null
- Fix
- Windows Phone and Windows 8:
- Fix
Stringconstructor with byte array: remove ‘0’ characters at the end of created string - Fix
Fileroot folder in Windows 8 - Fix
File.listFiles(), File.mkdir() and File.mkdirs()in order to use the right separator in Windows 8 - Fix
TextFieldandTextAreawhen default text is on and an empty text is set - Fix
StringUtils.replaceAll(), regular expressions are now supported - Fix
ImageLabeldefault layout alignment (HCENTER | VCENTER) - Fix
Timer.schedule()bug, the corresponding thread was never destructed - Fix
TextLabel.setLines()andTextLabel.setMaxLines() - Fix
CustomDialogposition: now the screen’s title is under the custom dialog - Fix
ScrollView.scrollTo()for Windows 8 - Fix
CustomDialogdefault content alignment for Windows 8 - Fix
Controller.resetScreenStack()for Windows 8 - Fix
SlideScreendefault touch areas to be on the edge of the screen - Fix
TextLabelmarquee 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
ListViewwithoutItemClickListenerto remove sink effect - Fix
ComboBox.openChooser()over dialog to go back to the previous opened dialog - Fix
ListViewandViewPagerscrolling 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 aClickListenerwill enable clickable mode - Fix
TextField.setTextColor()bug - Fix
WebViewbug: in some cases zoom with pinch gesture did not work - Fix
ImageButton: remove system background color effect when clicking on the button - Fix
Screendefault background color when a forced theme is applied on theApplication - Fix
View.setBackgroundImage(Image)andView.setBackgroundColor(Color): they were throwing aNullPointerExceptionif the image or the color was null - Fix
ViewPagerwhen 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
