NeoMAD 3.1.1 release notes

September 6, 2012

NeoMAD 3.1.1 is a maintenance release that addresses bugs of NeoMAD 3.1. It contains also some minor enhancements.

Enhancements

Build chain

  • Display a warning when the version of the XSD declared in the URS is not the same as the version of NeoMAD
  • Display a warning when a custom target is defined in the family description file but is already supported by NeoMAD
  • Add the iOS specific implementation in the PlatformSpecificCode example
  • Command line options: allow to use -gsi instead of -generate-specific-impl

Documentation and examples

  • Add the iOS specific implementation in the PlatformSpecificCode example

Fixed bugs

Build chain

  • Check the validity of the resources names declared in the URS (thus avoiding cryptic errors during compilation)
  • Fix the launch of the BlackBerry simulators
  • Improve the error message that is displayed when trying to use a full version while an evaluation license key is already installed

Generic API

  • Vibrator.startVibration() throws SecurityException when the permission is not declared
  • Button/TextLabel.setFont(Font) throws NullPointerException when the parameter is null
  • Remove ResourceNotFoundException constructor
  • Remove SmsResult constructor
  • Fix a bug with succession of dialogs
  • Fix AudioPlayer.isPlaying()

Generic API for Android

  • Fix padding bugs: DP units are now used (instead of pixel)
  • Fix AudioPlayer.getVolume() bad value
  • Fix RadioGroup.getSelected(): the method returns the radio button which has called setChecked(true)
  • Fix TextArea bug: a newline button is added to the keyboard in order to insert newline characters
  • Fix a bug when the application restart after a crash

Generic API for iOS

  • Fix rotation bugs
  • Fix TextField with opened keyboard bug: The screen will scroll to the selected TextField after the keyboard appears
  • Fix Layout visual bug when no child is visible
  • Fix ListView visual bugs with different types of items (Layout, Button)
  • Fix CheckBox click bug: the click over the label now checks the CheckBox
  • Fix ImageButton bug with the vertical stretching mode
  • Fix disabled styles for Button, TextField (under iOS 4.3)
  • Fix TimePicker bugs: setEnabled(), background image and background color now work
  • Fix ScrollView bug: scroll bar not well displayed under iOS 4.3
  • Fix Dialog life cycle bugs

Generic API for Windows Phone 7

  • Fix Menu items bug: some items are not duplicated in both menus (AppBar shortcut list and AppBar more list)
  • Avoid not cancellable dialogs: it is forbidden in Windows Phone (Microsoft Guidelines)
  • Fix performance issues with combo boxes which have very long list of items
  • Fix ComboBox.getSelectedItem() bug (the method was returning null in all cases)

Generic API for BlackBerry

  • Fix “marquee” effect for TextLabel: now scroll from right to left
  • Fix ScrollView bug: scroll indicators are now displayed when the ScrollView is scrollable in both side
  • Fix Application.onBeforeExit() bug: the method is now called when the application will exit with back button
  • Fix TextLabel drawing bug (some artifacts appeared)
  • Fix ComboBox listener bug: the listener of the ComboBox is now called only one time
  • Fix Controller.resetScreenStack(Screen) bug: the reset could now replace the root screen
  • Fix Controller.replaceCurrentScreen(Screen): avoid ClassCastException when another popup is shown over the screen
  • Fix RadioButton.setChecked(boolean) method, the method works when a RadioButton does not belong to a RadioGroup
  • Fix ImageLabel bug: ImageLabel is refreshed correctly when the image is changed (image with different size than the previous)
  • Fix Screen life cycle bugs: the onPause() and onResume() methods are not called on a screen when a popup is shown or hidden over it

Generic API for Java ME

  • Fix Button/TextLabel.getFont() bug: now returning the good value
  • Fix Screen bug: Screen.onPause() method is called when popping a screen
  • Fix Screen.setResult(ScreenParams) bug: setResult() pops the screen