Skip to content

Latest commit

 

History

History
209 lines (146 loc) · 11.7 KB

CHANGELOG.md

File metadata and controls

209 lines (146 loc) · 11.7 KB

Unreleased

1.1

1.1.0

ImageTools

  • Fixed bug in Android implementation that could result in errors due to prematurely recycled bitmaps

FuseJS/Bundle

  • Added .list() to fetch a list of all bundled files
  • Added .readBuffer() to read a bundle as an ArrayBuffer
  • Added .extract() to write a bundled file into a destination path

Image

  • A failed to load Image with a Url will now try again when the Url is used again in a new Image
  • Added reload and retry JavaScript functions on Image to allow reloading failed images.
  • Fixed infinite recursion bug that could happen if a MemoryPolicy is set on a MultiDensityImageSource

ScrollingAnimation

  • Fixed issue where the animation could become out of sync if the properties on ScrollingAnimation were updated.

macOS SIGILL problems

  • Updated the bundled Freetype library on macOS to now (again) include both 32-bit and 64-bit symbols, which fixes an issue where .NET and preview builds would crash with a SIGILL at startup when running on older Mac models.
  • Updated the bundled libjpeg, libpng, Freetype, and SDL2 libaries for macOS to not use AVX instructions, since they are incompatible with the CPUs in some older Mac models. This fixes an issue with SIGILLs in native builds.

Native

  • Added feature toggle for implicit GraphicsView. If you are making an app using only Native UI disabling the implicit GraphicsView can increase performance. Disable the GraphicsView by defining DISABLE_IMPLICIT_GRAPHICSVIEW when building. For example uno build -t=ios -DDISABLE_IMPLICIT_GRAPHICSVIEW

Gestures

  • Fuse.Input.Gesture now only has an internal constructor. This means that external code can't instantiate it. But before, they already couldn't do so in a meaningful way, so this shouldn't really affect any applications.

Native TextInput

  • Fixed issue where focusing a <TextInput /> or <TextView /> by tapping it would not update the caret position accordingly.

Route Navigation Triggers

  • Activated, Deactivated, WhileActive, WhileInactve have all been fixed when used inside nested navigation. Previously they would only consider the local navigation, not the entire tree. If the old behavior is still desired you can set the Path="Local" option on the navigation.
  • Activated, Deactivated have been fixed to only trigger when the navigation is again stable. If you'd instead like to trigger the moment the active page changes, which is closest to the previous undefined behavior, set When="Immediate"
  • The NavigationPageProxy use pattern has changed. Rooted is removed, Unrooted is now Dispose, and the constructor takes the parent argument. This encourages a safer use (avoiding leaks).

MapView

  • Support MapMarker icon anchor X/Y/File properties when setting MapMarkers via JS
  • Added <MapMarker Tapped="{myHandler}"/> to retain the data context for each tapped marker.
  • Added <MapView AllowScroll="false"/> to disable the user panning and scrolling around.
  • Fixed a bug causing crashes on iPhone 5s devices when using ShowMyLocation="true"

WebView

  • Added <WebView ScrollEnabled="false"/> to disable the user panning and scrolling around.

Fuse.Box / Fuse.Ray

  • Uno.Geometry.Box and Uno.Geometry.Ray has been replaced with Fuse.Box and Fuse.Ray.

MemoryPolicy

  • Added QuickUnload memory policy to keep data in memory for as short as possible.

ImageTools

  • Added supported for encoding/decoding images to/from base64 on DotNet platforms, including Windows and Mac OS X.

Bugfixes

  • Fixes a bug where the app would crash if a databinding resolved to an incompatible type (e.g. binding a number property to a boolean value). (Marshal.TryConvertTo would throw exception instead of fail gracefully).

Fuse.Controls.Video

  • Fixed a bug where HLS streams would become zero-sized on iOS.

Expression functions

  • added index and offsetIndex as funtions to get the position of an element inside an Each
  • added functions mod, even, odd, and alternate to complement the index functions. These allow visually grouping elements on the screen based on their index.
  • added trigonometric math functions sin, cos, tan, asin, acos, atan, atan2, radiansToDegrees, degreesToRadians
  • added math functions abs, sqrt, ceil, floor, exp, exp2, fract,log, log2, sign, pow, round, trunc, clamp
  • added lerp function for linear interpolation between values

1.0

1.0.4

GraphicsView

  • Fixed issue where apps would not redraw when returning to Foreground

ScrollView

  • Fixed possible nullref in Scroller that could happen in certain cases while scrolling a ScrollView
  • Fixed nullref in Scroll that could happen if there are any pending LostCapture callbacks after the Scroller is Unrooted

Fuse.Elements

  • Fixed an issue where the rendering of one element could bleed into the rendering of another element under some very specific circumstances.

1.0.3

ColumnLayout

  • Fixed an issue that would result in a broken layout if a Sizing="Fill" was used there wasn't enough space for one column.

Bug in Container

  • Fixed bug in Container which caused crash when the container had no subtree nodes. This caused the Fuse.MaterialDesign community package to stop working.

Fuse.Controls.Video

  • Fixed a bug where we would trigger errors on Android if a live-stream was seeked or paused.

Experimental.TextureLoader

  • Fixed an issue when loading images bigger than the maximum texture-size. Instead of failing, the image gets down-scaled so it fits.

1.0.2

This release only upgraded Uno.

1.0.1

Fuse.Elements

  • Fixed a bug where elements with many children and some of them were rotated, the rotated elements would appear in the wrong location.

1.0.0

iOS

  • Fix bug which could cause visual glitches the first time rotating from Portrait to Landscape

Fuse.Reactive

  • The interfaces IObservable, ISubscriber and IObserver are no longer public (affects any class that implements them). These were made accidentally public in Fuse 0.36. These need to be internal in order to allow behind-the scenes optimizations going forward.

Bugfixes

  • Fixes a bug (regression in 0.36) where functions could not be used as data context in event callbacks.
  • Fixed a bug where strings like "20%" did not marshal correctly to Size when databound.
  • Fixed a defect in expression functions x,y,width,height, they will not use the correct size if referring to an element that already has a layout

Instance/Each/Deferred

  • Changes to the items will not be collected and new items added once per frame. This avoids certain processing bottlenecks. This should not cause any backwards incompatibilties, though the option Defer="Immediate" is available to get the previous behavior.
  • Defer="Deferred" on Instance/Each allows the deferred creation of nodes without the need for a Deferred node
  • Deferred now has an implied priority based on the node depth. Items with equal Priority will now be ordered based on tree depth: deeper nodes come first.

Page busy

  • A Page will now be busy for the first frame (or two) after it is prepared. This will block the Navigator from starting the transition during those frames, which should improve first frame jerkyness. The PrepareBusy property can be set to None to disable this behaviour.

Text edit controls

  • Fixed the behaviour of placeholder text in the text renderer used when targeting desktop. The placeholder text is now always visible when there is no text in the text control, even when it has focus.

GeoLocation

  • The GeoLocation module no longer throws an exception if there are no listeners to the "error" event when there is an error.
  • Fixed an omission that meant that the old way of listening to GeoLocation events (using GeoLocation.onChanged = ... instead of the recommended EventEmitter GeoLocation.on("changed", ...)) did not work.

Stroke

  • The Stroke will no longer emit property changed events for its Brush unless it is pinned. This is not anticipated to be an issue for any projects.

Fuse.Version

  • A new static Uno class has been introduced, called Fuse.Version. It contains fields for the major, minor and patch-version, as well as a string with the full version number.

Native

  • Add implementation for android.view.TextureView to better support multiple <GraphicsView />'s and <NativeViewHost />'s on Android.

Container

  • In order to fix a memory leak in Container the pre-rooting structure was changed. Children of the container will not be children of the Subtree until rooted. It is not believed this will have any noticable effect; other features, like Trigger, also work this way.

Gestures

  • Extended the ability of gestures at multiple levels in the UI tree to cooperate, or take priority
  • SwipeGesture now has priority over ScrollView, even if in an ancestor node
  • Edge swipes have priority over directional swipes, regardless of the node they are in
  • Removed SwipeType.Continuous as it did not work correctly and wouldn't fulfill the known use-case even if it did. Consider using Auto instead.
  • Deprecated public access to the Scroller class. This is an internal class and should not be used. All functionality is accessible via ScrollView
  • Added SwipeGesture.GesturePriority and ScrollView.GesturePriority to adjust priorities
  • Fixed an issue where a higher level capture where preempt one lower in the UI tree

Visual

  • The then argument to BeginRemoveChild is now an Action<Node> to provide the node to the callback. Add an Node child argument to the callback function.

ImageTools

  • Changed the algorithm for creating new file names for temporary images. Previously this used a date format that caused problems when several images were created in sub-second intervals, breaking custom map marker icons, for instance.
  • Fixed a memory leak that occured when resizing multiple images one after another.

Vector drawing

A new vector drawing system has been added to Fuse. This allows drawing of curves, shapes, and simple vector images.

  • Added Curve which allows drawing of lines and polygons. CurvePoint can be used to bind to JavaScript observables and servers as the basis for drawing line graphs
  • Reintroduced Path, Ellipse, Star and RegularPolygon. These are all backed by the new vector system.
  • Added several options to Ellipse to allow drawing wedges, like with Circle
  • Added Arc for drawing the outside edge of an Ellipse
  • Added elliptic arc support to Path to support more SVG path data
  • Removed FitMode.StrokeMaximum and FitMode.ShrinkToStroke as they could not be reliably supported or behave in a reasonable fashion. To fit accounting for stroke use a wrapping panel with padding instead.
  • Removed Path.ScaleMode as stroke scaling is not supported as it was before
  • Remove the Fuse.Drawing.Polygons and Fuse.Drawing.Paths packages. Their functionality has been replaced by the new vector system
  • Fuse.Controls.FillRule has moved to Fuse.Drawing.FillRule

Default Fonts

  • Added the following default-fonts, that can be used like so <Text Font="Bold" FontSize="30">This is some bold text</Text>:
    • Thin
    • Light
    • Regular
    • Medium
    • Bold
    • ThinItalic
    • LightItalic
    • Italic
    • MediumItalic
    • BoldItalic

Fuse.Audio

  • Due to a bug in Mono we have temporarily removed support for PlaySound in preview on OSX.

MapView

  • Fixed a bug causing crashes on iPhone 5s devices when using ShowMyLocation="true"

ImageFill

  • Fixed a bug where the MemoryPolicy given would not be correctly used.

Old

See the commit history for this file for older entries.