NeoMAD 3.9 release notes¶
June 15, 2015
It is now possible to display map views in the application. The native map provider is used, which is :
- Google Maps for Android
- MapKit for iOS
- Nokia Maps for Windows Phone.
It is now possible to specify custom splash images to show at the start of the application. Splash images are declared using a specific image resource set and a new tag of the urs file. Please refer to the User Guide for more information.
A view that shows items in a center-locked, horizontally scrolling list. It can be use as an alternative to
ViewPager to create a simple carousel.
Other new features and enhancements¶
New classes and methods:
Gesture.getState(): gives information about a gesture’s current state (if the gesture has begun, is moving or is finished)
SlideScreen.setLeftShadowEnabled(boolean): enables or disables the shadow over the middle screen when the left menu is opened
SlideScreen.setLeftSlidingTouchEnabled(boolean): activates or deactivates the opening of the left panel by dragging the screen with the finger
View.setTransformOrigin(float, float): sets the x and y location of the point around which the view will be scaled or rotated when an animation occurs
GridView.scrollToTop(): moves the scroll position of the GridView to its first item
FrameLayout.bringChildToFront(View): moves the specified view at the top of the FrameLayout
ViewPager.isEnabled(): enables or disables the pager in order to allow or forbid the navigation between pages with the finger
ViewPager.setOffScreenPageLimit(int): sets the number of pages that should be buffered at each side of the current page
ImageLoader.get(): useful for preloading image for ImageUrlLabel
Source file encoding: it is now possible to specify which file encoding is set on source files thanks to the new
<srcencoding>tag in the URS. By default, the encoding used is the JVM’s file.encoding property.
Support of the Location API for iOS 8 and more The Location API did not work for iOS 8 and more due to a change in the native API between iOS 7 and 8. New methods in the Location API and a new tag in the URS are available to configure the application in order to use the Location API in iOS:
<location requestAlwaysDescription="your text" requestWhenInUseDescription="your text" />in the URS will enable use of Location API in iOS
LocationManager.requestWhenInUseAuthorization(). One of them must be called before the first use of the location service. They will prompt a message to the user for enabling the location service in the application. The message comes from the
<location>tag attributes in the URS.
Additional classes and methods have been added to follow the location authorization status:
AuthorizationStatusListener: allows to listen to changes in the location service authorization
LocationManager.setAuthorizationStatusListener(AuthorizationStatusListener): attaches a
The value of the
<binaryname />tag of the urs is now used to name the generated projects for all platforms, in addition to changing the name of the .apk, .xap or .ipa like before. Note that this tag is not used to change the title of the application, just the name of the binary file.
PinchListener.onPinchGestureEnd(Pinch, View)are now deprecated. They are still called but will be removed in a future release. Use
PinchListener.onPinchGesture(Pinch, View)to know if the pinch is beginning or ending.
- iOS minimum supported SDK version is now iOS 7.0.
- The Java ME and BlackBerry targets have been removed.
DeviceInfo.IOS_6_1constants have been deprecated and will be removed in the next version of NeoMAD.
Notification.setActionText(int)methods have been deprecated and will be removed in the next version of NeoMAD.
ContentManagerNullPointerException when the server sets Cache-Control: “no-cache” or “no-store”
ContentResponse.isIntermediate()not returning false when the response is coming from the network
FileImageCachelocked sometimes when used by multiple threads concurrently
HttpRequest.isSuccess()bug in order to return true only if http code corresponds to 3XX or 4XX server code.
SlideScreen: left pane maximum width is now 320dp.
Animation.scaleYBy(float): applying a scale factor lower than 1 now scales down the view
Animation: a wrong factor was applied on scale animations
AnimationListener: an exception occurred when starting a new animation from
Transition: a black screen appeared in transitions
- Android reference libraries: fix R.java file that was being removed from the final binary during optimization step.
GridView.scrollToTop()that was not always working
Vector.equals(Object): behavior is now the same as in Android, Windows Phone and Windows store apps, Vectors are equal if their content is equal
- Fix encoding problem in iOS generated project: accented characters in application name were not correctly generated in the final project
String.trim(): method now works if there are special characters in the string (like “é”, “&”, “è” etc.)
SlideScreen: disable overdraw of left and right panels
SlideScreen: fix the white screen showing a short time before the middle screen appears
Layout.removeAllViews(): background was removed with the views of the layout
Animation.translationY(float): animation started at a bad position if other layout changes occurred during the animation
Animation.rotationY(float): the whole view now stays visible during the animation
Animation.rotationY(float): animated view was blurred after animation
Animation.scaleY(float): same scale factor can no longer be applied several times on the same view (use
Animation.scaleY(float): the first time an animation of this type occurred in a layout, the animated view was not correctly drawn
Animation.setStartDelay(long): the start delay was not taken into account if the duration of the animation was 0 ms.
WebView: The default background color is now transparent
Imageinstances being mistakenly freed by
ImageLabel, causing white images to appear sometimes
LocationManager.isLocationEnabledByUser(): the method always returned true even if the user had disabled the location service for the application
HttpResponse.getDataString(): the method no longer returns null if called more than once
- Windows Phone:
- Fix: applications that require services are no longer rejected by the Windows Phone Store automatic validation process