NeoMAD 3.3 release notes

June 18, 2013

New Features

Supported targets

Several Nokia Asha phones have been added to the list of supported devices. The new targets are: NOKIA305, NOKIA306, NOKIA308, NOKIA309, NOKIA310, NOKIA311.

Generic API


Using the File API (, it is now possible to read and write files into the application private storage, cache storage and inside the device external phone storage.


The Mail API ( allows to prepare sending email and launch the native email client with filled form. The user decides if the email could be sent or not.


The tab bar of the TabScreen component could be customized thanks to the new component: CustomTabBar (package

The WebView control supports loading content from URL as well as HTML string content.

The Switch control manages two states “on/off” button.


The URLUtils component has utility methods to encode and decode URL strings.

The StringUtils component has utility methods to replace parts of String.

Minor enhancements

In addition to the main features described previously , several enhancements have been made to the NeoMAD Generic API:

  • Add “next” button in the keyboard for iOS in order to navigate between text fields in a form
  • Add the openChooser() method to ComboBox, TimePicker, DatePicker in order to open special popup dialogs used for selecting date, time and an item among a list.
  • Add ScreenParams.keys() and remove() methods


  • Add the TabScreenExample that shows how to use the TabScreen class manages a tab-style interface with a stack of screens in each tab.

Fixed Bugs

Build Chain

  • Fix the Android build chain to support the version 22.0.1 of the Android SDK tools.
  • Fix the support of the <libraries> tag of the URS file for Java ME targets
  • Fix bug #2711: translation to C# fails when a constructor is called with 3 parameters
  • Fix Java source code translation with inherited abstract method from interface implemented by superclass

Generic API

  • Fix SplitScreen blank when going back with an empty screen stack

Generic API for Android

  • Fix TextArea.setMaxLength() bug in numeric mode
  • Fix TextArea.setReadOnly() bug
  • Fix TabScreen bug: onResume() called over all sub screens
  • Fix padding bug when a background is set after
  • Fix missing padding bug with ActionBar items in LDPI devices.

Generic API for iOS

  • Fix SplitScreen bugs with replaceScreen()
  • Fix SplitScreen bug with MasterScreen.onCreate() which does a pushScreen()
  • Fix bad position of popup of combo boxes in iPAD version
  • Fix ScrollView with keyboard bad offset bug
  • Fix SplitScreen bug, calling pushScreen() inside onCreate() did not take in account screen parameters
  • Fix Controller.replaceScreen() with a SplitScreen, the SplitScreen was only pushed.
  • Fix MenuItem with image inside the TitleBar visual bug.
  • Fix DeviceInfo.getIdentifier() bug with Apple Store requirements : old iOS devices return third party library OpenUDID identifier.
  • Fix TextField/TextArea getText() bug when only a default text is set.
  • Fix RadioGroup size bug

Generic API for Windows Phone

  • Fix DatePicker bug with bad date
  • Fix Controller.replaceCurrentScreen() bug with different types of screen
  • Fix onPause() and onDestroy() never called in TabScreen sub screens,
  • Fix Menu not replaced when going back from Screen to TabScreen
  • Fix TabScreen selected screen is never paused or resumed
  • Fix ScreenParams.put() method bug when the key parameter already exists
  • Fix TextField, TextArea native border and background customization
  • Fix TextField/TextArea.getText() bug when only a default text is set.

Generic API for BlackBerry

  • Fix text color bug to text on TextField when default text and text are set.
  • Fix TextArea readonly mode
  • Fix Controller.replaceCurrentScreen() bug with different types of screen
  • Fix TouchEvent.isCancelled() bug

Generic API for Java ME

  • Fix TouchListener bug with layouts