Tags give the ability to mark specific points in history as being important
  • v6.0.4   Release 6.0.4
  • v4.3.6
    9941f03a · Update CHANGELOG.md ·
    Release v4.3.6

    4.3.6 - 2019-04-13

    Highlights

    • Dropped support for Windows Phone 8

    Changed

    • HttpStream: Reverts change "Query parameters are now encoded to support the usage of unsafe characters" introduced in 4.3.1 - #482, #483
  • v4.3.5
    7427bffd · Update CHANGELOG.md ·
    Release v4.3.5

    4.3.5 - 2019-04-01

    Fixed

    • Deploy: Fixed bug that would cause a method signature to be included in the constant pool as a class - TotalCross#139, TotalCross#468
  • v4.3.4
    69596d57 · Update CHANGELOG.md ·
    Release v4.3.4

    4.3.4 - 2019-03-20

    Fixed

    • Android
      • Reverted back the change reverted on last release and finally fixed the bug that was causing the assets to touble in size - #358
    • HttpStream: Fixed read operation not retuning EOF when the correct content length is provided on the reply - #464
  • v4.3.3
    75d03be2 · Update CHANGELOG.md ·
    Release v4.3.3

    4.3.3 - 2019-03-14

    • Changed generation of the TotalCross SDK jar:
      • Annotations @Deprecated and @ReplacedByNativeOnDeploy are no longer stripped by ProGuard - #411
      • Argument names are no longer obfuscated
      • The javadoc jar is now being deployed to our Maven repository - #391

    Fixed

    • Android
      • Fixed deploy not being able to sign the apk when TOTALCROSS3_HOME is set with a relative path - TotalCross#275
      • Reverts change on deploy that seems to be causing the assets to double the size in the apk
      • Fixed Camera NATIVE support
    • iOS
      • Fixed screen resolution for newer models such as iPhone XS - #308
  • v4.3.2
    f47d7047 · Update CHANGELOG.md ·
    Release v4.3.2

    4.3.2 - 2019-01-31

    Fixed

    • iOS
      • Usage of "hide keyboard" button on the keyboard - #347
  • v4.3.1
    fac15352 · Update CHANGELOG.md ·
    Release v4.3.1

    4.3.1 - 2019-01-14

    Fixed

    • URI: Fixed parse of multibyte characters
    • Camera: Fixed regression in release 4.2.2 - #346
    • ArcChart: Fixed coloring of chart when a single series represents 100% of the data - #350

    Changed

    • HttpStream: Query parameters are now encoded to support the usage of unsafe characters

    Known issues

    • iOS
      • Using the "hide keyboard" button on the keyboard makes it unavailable for the application - #347
  • v4.3.0
    1ecf4fe4 · Update CHANGELOG.md ·
    Release v4.3.0

    4.3.0 - 2019-01-04

    Highlights

    • Added implementation of PBKDF2WithHmacSHA1
    • Removed SMS permissions from Android manifest when using the default deploy options, and added the new option /include_sms to deploy including them

    Fixed

    • iOS
      • Fixed screen dimensions on IPhone XS
    • Resign script tccodesign:
      • Fixed issue with provided mobileprovision not being added to the Xcode mobileprovisions folder
      • Temp files are now removed before the script execution
      • Fixed issue with certificate name in the following format: iPhone Distribution|Developer: Provided Name (Team ID)
    • ImageList: Fixed bug introduced in version 4.2.0 with the correcion of issue #192 - #291
    • DiscoveryAgend: Fixed potential leaks when using service discovery on WinCE
    • Grid: Fixed sorting different types of data in Grid - #297

    Changed

    • Removed SMS permissions from Android manifest when using the default deploy options, and added the new option /include_sms to deploy including them

    Added

    • Added implementation of PBKDF2WithHmacSHA1

    Known issues

    • Local notifications do not work on Android 8+. This is caused by a change in the security requirements of the Android native notification API that was not listed in the platform's release changelog. This issue will be fixed on the next release of TotalCross 5, but a fix for version 4 won't be issued to maintain our current compatibility with older Android devices.
  • v4.2.7
    5e644890 · v4.2.7 ·
    Release v4.2.7

    4.2.7 - 2018-12-06

    Fixed

    • Camera: Added request for external storage permission - #304
    • JSONFactory
      • Fixed processing of arrays in complex objects and added support for non-static inner classes - TotalCross#326
      • Fixes bug on json parsing caused by usage of a regex expression
  • v4.2.6
    12bc4ea4 · v4.2.6 ·
    Release v4.2.6

    4.2.6 - 2018-12-03

    Fixed

    • Vm.exec: Added permission REQUEST_INSTALL_PACKAGES to allow the application to install an apk on Android 8+
    • TreeMap: Fixed import of java.lang.Comparable

    Changes

    • Scanner: Added camera permission request on Android (ZXing/Scandit)
  • v4.2.5
    0d0acdd4 · v4.2.5 ·
    Release v4.2.5

    4.2.5 - 2018-11-29

    Fixed

    • Fixed location permission request

    Changes

    • Camera: Removed picture rotation detection on Android - it was source of intermittent bugs on some Samsung and Motorola devices
  • v4.2.4
    393fd2d5 · v4.2.4 ·
    Release v4.2.4

    4.2.4 - 2018-11-26

    Fixed

    • Fixed permission requests for File constructor, delete and getSize on Android 6+ - #317
    • Fixed permission request for Camera on Android 6+
    • Fixed Vm.exec on Android: intents were not being able to pass external files to other applications - #69, #320, #232 fixes

    Changes

    • GPS permission is no longer requested when the application is launched, instead the permission is automatically requested when required by the application
  • v4.2.3
    b1be3286 · Update CHANGELOG.md ·
    Release v4.2.3

    4.2.3 - 2018-11-07

    Fixed

    • Fixed regression with the Android deploy that would produce an apk not acceptable by the Play Store
    • Radio
      • Fixed autoSplit when the control width is set to PREFERRED
  • v4.2.2
    Release v4.2.2

    4.2.2 - 2018-10-30

    Fixed

    • Camera
      • Fixed CAMERA_CUSTOM not taking pictures when the device is held on vertical position, this affected a few models, most notably Samsung tablets - TotalCross#233

    Changes

    • Container
      • Method getChildren changed to return an empty array instead of null when the container has no children.
  • v4.2.1
    Release v4.2.1

    4.2.1 - 2018-10-19

    Fixed

    • Notification
      • Fixed notification crashing on Android - #255
      • Clicking on a notification will no longer start a new instance of the application if there's already one running on background
    • PushButtonGroup
      • Fixed regression on PushButtonGroup that made them unclickable on Win32, affecting all dialogs - TotalCross#263

    Changes

    • Added a new virtual keyboard that looks more closely to the Android native keyboard and is now the default for Edit and MultiEdit.
    • HttpStream: Added support for http methods PUT, PATCH and DELETE in class HttpStream - #240
  • v4.2.0
    Release v4.2.0

    4.2.0 - 2018-10-01

    Highlights

    • Android
      • Android package is now built with SDK 27 (previous releases were built with SDK 22) and the latest NDK r17b (up from NDK r8b!) - The minimum SDK level required to run TotalCross applications remains unchanged (SDK 10)
      • Applied the Android recommended changes to better handle activities and contexts to prevent possible resource
      • TotalCross now asks for the user permission to access phone state and location on startup

    🚧 On Android, features that require user permission during runtime may not be working. Please report if you have any trouble with permissions.

    • iOS

      • iOS package is now built with SDK 12
      • Added permission request to use the camera
    • General

      • Improved some Color methods to produce better results by properly weighting the RGB components according to our perception of color brightness
      • Added support for local notifications on JDK, Android and iOS.
      • EscPosPrintStream - New API to handle ESC/POS printer commands
      • Added support for fast IDCT scaling on jpeg images. Combined with the usage of the new utility classes to manage scaling jpeg images, this can greatly reduce the memory footprint of jpeg images and improve graphical performance.

    Using this approach to handle images of approximately 800x800 on medium sized devices can reduce memory consumption by up to 80% while doubling the image loading speed!

    Fixed

    • Fixed bug during activation with some JDK versions - a FileNotFoundException could be thrown when trying to recursively create directories for a new file
    • Deploy
      • Will now correctly package tcz dependencies that were split over multiple files - #214
      • Added protection for unlikely (but possible) NPE
      • Fixed deploy with Java 10, dependencies are now listed in the jar's Manifest
      • Fixed NPE when deploying for Win32 without initializing Launcher.instance - #165
      • Fixed rare (but possible) NPE during deploy
      • Fix path for Win32 dll, case sensitive systems expect binaries on lowercased folders - #274
    • Scanner
      • Fixed barcode scanning on Dolphin/Honeywell devices - value of barcode's check digit was being carried over to the calculation of the check digit on the next reading - TotalCross#228
    • ComboBox
      • Fixed vertical alignment of text - #192
    • ImageControl
      • Removed duplicated field effect
      • Fixed detection of press events
    • Toast
      • Fixed Toast appearing relative to the topMost window, when it should always be relative to the MainWindow
    • MultiButton
      • Fixed graphical bug - a transparent ComboBox arrow was being drawn on the background of the MultiButton (!)
    • PushButtonGroup
      • Fixed drag event to allow "giving up" on a press event by dragging outside the button bounds after a press
    • MultiEdit
      • Fixed text being hidden with Material style
      • Fixed bug that made every even character to disappear when you typed and reappear when you typed the next one
    • AccordionContainer
      • Fixed arrows not changing state when switching focus between multiple collapsible panes
    • CalculatorBox
      • Fixed enconding error with plus-minus sign - #206
    • Grid
      • Fixed column width wrong resize when dragging edge to before column start - #186
    • JSONFactory
      • Fixed recursive creation of complex objects
      • Improved JSON parser to map methods camel cased to underscored fields in the JSON object

    Changes

    • Updated version of the Bouncy Castle dependency
    • On Java, Settings.appPath is now initialized even if the Launcher isn't executed - #165
    • Launcher
      • The Launcher (simulator) can no longer be used without an activation key
    • Deploy
      • Check paths from pkg file and throw more meaningful error message when a path is invalid
      • Print Deploy exceptions on System.err instead of System.out and using the default stack trace output
    • Whiteboard
      • No longer recreates the content image when repositioned - #187, TotalCross#196
    • ListBox
      • Deprecated method add(Object[] moreItems, int startAt, int size) as it was redundant and more confusing than helpful
    • ComboBox
      • Deprecated method add(Object[] moreItems, int startAt, int size) as it was redundant and more confusing than helpful
    • Radio
      • Added feature autosplit - #180

    Added

    • EscPosPrintStream - New API which supports several ESC/POS printer commands - refer to the class documentation and samples for more information
    • Notification and NotificatonManager - Allows the creation and presentation of local notifications to the user, currently implemented for Android, iOS and Java.
    • ImageLoader - New class to help managing image resources, especially jpeg images. Currently no caching is done by the class.
    • Image
      • Added static methods Image.getJpegScaled and Image.getJpegBestFit to load jpeg files using fast IDCT scale, more about this here
    • Java
      • Added classes ByteArrayOutputStream and UncheckedIOException
      • Added classes Charset and UnsupportedCharsetException, added also String.getBytes(Charset)
    • Added Cp437CharacterConverter, which supports encoding and decoding characters using the CP-437 charset (also known as IBM437, windows-437, among others). Especifically added to be used with EscPosPrintStream to properly support writing text to Leopardo A7.
    • Convert
      • Added method charsetForName(String name), which returns one of the registered charsets available
      • Added method registerCharacterConverter(AbstractCharacterConverter characterConverter), which allows users to create and registers their own subclass of AbstractCharacterConverter to support custom encodings
      • Added several aliases to the existing ISO-8859-1 and UTF-8 CharacterConverter classes and changed setDefaultConverter to be case insensitive and support any of listed aliases.

    The existing CharacterConverter class and subclasses were changed to extend AbstractCharacterConverter, which extends Charset. The actual support to Java Charset is almost none, the main goal is to allow the usage String.getBytes(Charset) with the existing CharacterConverter and let users encode strings with different charsets without changing the charset used by the rest of the application through Convert.setDefaultConverter.

    Deprecated

    • ListBox
      • Deprecated method add(Object[] moreItems, int startAt, int size) as it was redundant and more confusing than helpful
    • ComboBox
      • Deprecated method add(Object[] moreItems, int startAt, int size) as it was redundant and more confusing than helpful

    Known issues

    • iOS
      • Applications signed for enterprise distribution cannot run on iOS 12 - apparently it fails to validate the certification chain that validates the signed application. It's not clear yet if this was an intended change or a bug, but there's no word from Apple about it yet.
      • Applications signed for distribution through the AppStore cannot be uploaded because of changes on the way image resources are handled starting from iOS 11. We are working on a definite fix for this, in the mean time feel free to contact us to manually package the application for the AppStore.
    • Notification
      • Android lacks support for custom images for notifications, only the default TotalCross logo is supported
      • Notification crashing application on Android - #255
    • PushButtonGroup
      • The fix for the drag event caused PushButtonGroup to be unclickable on Win32, affecting all dialogs - TotalCross#263
  • v4.1.4
    Release v4.1.4

    4.1.4 - 2018-05-17

    Highlights

    • TotalCross is now built with the iOS 11 SDK, as a side effect the minimum iOS version supported by TotalCross is now 8.0 (up from 5.1.1). Applications published on the Apple Store must be updated.
  • v4.1.3
    Release v4.1.3

    4.1.3 - 2018-04-12

    Fixed

    • Fixed Edit's material caption animation when navigating using the keyboard
    • Fixed WrapInputStream.read() - the value returned is now between the range 0-255, as specified by the InpuStream.read() documentation. The class WrapInputStream is used by Stream.asInputStream()
    • Fixed MaterialEffect to stop discarding PEN_UP events sent to the target Control after the effect is removed from the target Control
    • Implemented ConnectionManager.getLocalHost() for iOS
    • On iOS, fixed keyboard being closed when navigating to the next text input control using the "Done" button
    • Fixed SideMenuContainer - the sidemenu is no longer draggable
    • Fixed retrieval of the device's current time on newer Android devices (and possibly other POSIX compliant platforms) - #147
    • Fixed BarButton only firing a pressed event targeting itself when Material UI style is used - #176
    • Fixed redraw after the device is unlocked on Moto G5 Plus - #173
    • Fixed javadocs not being included with the SDK

    Changes

    • Usage of Vm.sleep(1) in the SDK replaced with Thread.yield() for clarity sake
    • Changes LineReader to use Thread.yield() between read attempts instead of stoping the Vm for 100 ms
    • Spinner's implementation changed to use TimerEvent instead of threads perform the animation
    • Edit's material caption animation is faster and will no longer get mixed with the blinking cursor
    • WrapInputStream.read(B[], I, I) no longer rethrows totalcross.io.IOException as java.io.IOException
    • WrapOutputStream.write(B[], I, I) no longer rethrows totalcross.io.IOException as java.io.IOException
    • WrapInputStream.close() will now properly close the underlying stream
    • WrapOutputStream.close() will now properly close the underlying stream
    • Changed the way we obtain the current device orientation and screen dimensions on Android, the previous implementations were deprecated
  • v4.1.2
    Release v4.1.2

    4.1.2 - 2018-02-20

    Fixed

    • Fixed support for WinCE based scanners that use OpticonH16.dll

    Added

    • Added support for native laser scanning for Android based Symbol/Motorola scanners
  • v4.1.1
    Release v4.1.1

    4.1.1 - 2018-02-06

    Highlights

    • Launcher default color depth changed from 16 bpp to 24 bpp

    Fixed

    • Fixed Switch disappearing on Android - calculation of alpha channel applied to the switch was wrong
    • Fixed Socket and HttpStream to properly handle EOF during read operation
    • Fixed screen not being shifted when device is in landscape
    • Fixed issue where a focused Edit would not receive keypress events
    • Fixed bug in Edit on Android - backspace events would not be issued when the Edit had text but had not received any typing events

    Added

    • Added Edit.canMoveFocus to disable focus change
    • Added Stream.write(int), convenience method to write a single byte to the stream
    • Added ScrollContainer.setScrollBars to allow subclasses to add or remove scrollbars after its creation
    • On Android, Chrome no longer supports using the scheme prefix to display local files. Added workaround to Vm.exec to keep backwards compatibility - #148
    • Added Settings.ANDROID_ID, refer to the Android documentation for more details
    • Added limited support for running Intents through Vm.exec on Android - #155

    Changes

    • Whiteboard now supports usage of transparentBackground to ignore the background color and generate images with transparent background - #153
    • Pressing ENTER in a set of Edit inside a ScrollContainer will now automatically scroll to the next control
    • Improved Control.setRect error messages, it will now throw distinct messages for invalid width or height