Kanzi 3.9 beta 2 release notes

New features

Feature improvements

  • Kanzi Android framework (kzDroidFw) improvements:

    • You can now use Kanzi from Android contexts without a view (for example, a WallpaperService) by instantiating a KanziViewAdapter and manually forwarding to it all lifecycle and input events.

      class WallpaperEngine1 extends WallpaperService.Engine {
          KanziViewAdapter mAdapter;
      
          @Override
          public void onCreate(SurfaceHolder) {
              ...
              mAdapter = new KanziViewAdapter(getApplicationContext(), "WallpaperEngine1");
              mAdapter.setStartupPrefabUrl("kzb://project1/Prefabs/Wallpaper");
              mAdapter.handleAttachedToWindow();
          }
      
          @Override
          public void onSurfaceCreated(SurfaceHolder holder) {
              ...
              mAdapter.handleSurfaceCreated(holder.getSurface());
          }
      
          ...
      
    • Android surfaces attached to Kanzi, whether from views or manually connected to KanziViewAdapter, now by default clear to opaque black. You can configure this functionality with new layout attributes and setter methods on both KanziView and KanziViewAdapter.

      <!-- Color used to clear the surface. -->
      <attr name="clearColor" format="color" />  <!-- Default value: 0xff000000. -->
      
      <!-- Flag to enable clearing the surface. -->
      <attr name="clearEnabled" format="boolean" />  <!-- Default value: true. -->
      
      void setClearColor(ColorRGBA color); // Null is used to skip clearing.
      
    • Kanzi now automatically resumes from sleep when state changes happen external to the main loop. The Domain.scheduleUpdate() method is no longer required and has been removed.

  • Added Kanzi Android framework project templates to Kanzi Studio to enable you to create an application using the Kanzi Android framework.

    Name

    Description

    Android application

    Creates a Kanzi Studio project with a Kanzi Android framework-based application.

    Android application with Java plugin

    Creates a Kanzi Studio project with a Kanzi Android framework-based application that contains a Kanzi Engine Java plugin.

  • Introduced to keyboard input handling:

    • KeyMapEventFilter. Use the KeyMapEventFilter together with event sources to translate key input in Kanzi.

    • KeyRepeatGenerator. Use the KeyRepeatGenerator to generate repeat key presses together with event sources that cannot provide repeat key presses to a Kanzi application.

  • Improved the actions that you can use to scroll Scroll View and Grid List Box nodes in a specific direction or position. Each direction and position now has a dedicated action. See Scroll actions.

  • In binding expressions you can now cast to color and vector values. See Type casting.

  • You can now set a Text Box node to adapt its width to the length of the text in that Text Box node. See Setting the length of text that a Text Box node can show.

  • Published the FocusScope API, which enables you to traverse the nodes in a focus scope using either:

    • FocusScopeVisitor for unordered UI scene traversal

    • FocusScope::FocusChain for ordered iterated traversal

  • You can now configure the graphics context API also in the application.cfg. See Graphics library.

Changes

  • Changes to the Key Manipulator:

    • The Key Pressed trigger now reports whether a key press is a repeat caused by the user holding down a keyboard key. See Using the Key Manipulator triggers.

    • Removed the Key Hold Timeout and Key Repeat Interval properties from the Key Manipulator node component.

  • Linux_imx6_armhf (GCC 4.9) is no longer supported and is replaced by linux_imx6_armhf_gcc6.

Documentation

Notable fixes

ID

Description

Area

362849

Slider nodes that use a Linear Trajectory now take the trajectory direction into account when processing up and down navigation key events. This makes the default navigation keys work for a vertical slider.

Kanzi Engine

353843

Slider nodes no longer override the values of the Minimum Value and Maximum Value properties. You can now set the values of the Range properties in a Slider node in any order.

Kanzi Engine

365460

Fixed the issue that prevented focus from moving continuously when the user keeps the Tab or BackTab key pressed down.

Kanzi Engine

374489

Fixed the issue that prevented the Cubemap Render Pass from generating mipmaps.

Kanzi Engine

378740

Kanzi applications running on Android no longer terminate when you resize multiple views.

Kanzi Engine

See also

Kanzi 3.9 beta 2 migration guide

Known issues