Already have an account? Log in
Please remember to uno clean
your projects
after upgrading Fuse.
ScrollView
would misbehave and scroll too slowly.router.modify
to the JavaScript interface. This function can be used to provide more routing options, such as "Replace" mode and "Bypass" transitions.CubicBezierEasing
which allows you create custom easing curves with two control points.Navigator
. This allows Page
bindings to work for the active navigator page, such as {Page Title}
.But there's so many smaller and larger updates this time that you should totally read the full list!
<TextInput>
could be seen for 1 frame on screen when it was supposed to be hidden / behind other visual elements.Instance
behavior<Instance>
, which instantiates ux:Templates
. Equivalent to <Each Count="1">
, but reads better in UX and doesn't expose Count
or Items
.Instantiator
from Each
, which Instance
also inherits.Users of Local & Push notifications on Android can now specify the icon to be used for the notification. This is done in the same fashion as the regular android icons. In your project's unoproj specify:
{
"Android": {
"NotificationIcon": {
"LDPI": "Icon-ldpi.png",
"MDPI": "Icon-mdpi.png",
"HDPI": "Icon-hdpi.png",
"XHDPI": "Icon-xhdpi.png",
"XXHDPI": "Icon-xxhdpi.png",
"XXXHDPI": "Icon-xxxhdpi.png"
}
}
}
The icon must adhere to the Android style guides. In short it must be white on a transparent background, any solid color will be converted to white by the Android build process, something which is outside of Fuse's control.
The behavior around default notification icon has also changed. Before we simply used the app icon. This meant that when the icon had color, the color was removed by android often resulting in an white square. With this change we will either:
Android.NotificationIcon
as specified above. Or if that is not specified we...Android.Icons
setting from your unoproj. Or if that is not specified we....subscribe(module)
which can be used to create a dummy subscription on observables for the lifetime of the given module. This is an alternative to adding the observable to module.exports
or using .onValueChanged
in cases where you want to access the observable's value in a callback.Placed
event now provides metadata to its argument to let you know more about the layout of an element in JS: .x
, .y
, .width
and .height
. Usage:
<JavaScript>
function panel_placed(args) {
args // contains information about the new size and position
}
</JavaScript>
...
<Panel Placed="{panel_placed}"/>
Easing
from an enum into a base class, to allow custom easing curves. (UX interface unchanged, Uno code should also be mostly unaffected).gotoRelative
and pushRelative
functions. These allow relative changes in route without needing to specify the full absolute path.<Shadow>
so it still draws the shadow-rectangle when the element's color contains zero-alpha.<Shadow>
elements now understand that it's not always hip to be square! They'll now draw a round shadow rather than a rectangular one if their parent is a <Circle>
ux:Key
) inside, and they will be added to the parent node when the node is active. This allows e.g. per-platform or conditional styling.Example:
<iOS>
<Font File="foo-ios.ttf" ux:Key="DefaultFont" />
</iOS>
<Android>
<Font File="foo-android.ttf" ux:Key="DefaultFont" />
</Android>
<Text Font="{Resource DefaultFont}" />
Container
panel which allows you to build custom containers where children are placed under a custom node deeper in the tree.Color
on <Image>
es that are inside <NativeViewHost>
<Image>
inside <NativeViewHost>
would be laid out wrong<NativeViewHost>
did not behave properly{ReadProperty prop}
, {WriteProperty prop}
, {Read data}
and {Write data}
ActionStyle
from <TextView>
. This is a <TextInput>
specific property and it did not have any effect on <TextVIew>
<TextInput>
or <TextView>
lost focus.<TextView TextWrapping="Wrap" />
would fail to wrap the text.<ImageFills>
now repeat the texture if a StretchMode
like PixelPrecise
or PointPrecise
is used.TextColor
did not presever the right init valueWe have added option to specify the following iOS plist entries from the unoproj
file:
They can be used as follows:
"iOS": {
"PList": {
"NSCameraUsageDescription": "ReasonA",
"NSMicrophoneUsageDescription": "ReasonB",
"NSPhotoLibraryUsageDescription": "ReasonC",
}
}
Foreign Java is a little more strict and does a little more type checking during the build.
Action<object>
s passed to Java will now have the type Action_UnoObject
rather than Action_Object
Action<Java.Object>
s passed to Java will still have the type Action_Object
object
. You must pass an Uno object, not a java object.Here is an example for point 2
that will no longer compile:
[Foreign(Language.Java)]
static string Foo()
@{
Object jobj = MakeSomeJavaObject();
@{Bar(object):Call(jobj)};
@}
[Foreign(Language.Java)]
static string Bar(object x)
@{
...
@}
The fix for the above would be to change Bar(object x)
to Bar(Java.Object x)
and @{Bar(object):Call(jobj)}
to @{Bar(Java.Object):Call(jobj)}
--set:AltBuildPath="/tmp"
argument to specify the root of your android builds.<Change foo.bar="{binding}" />
and similar (bugfix).Font
and other types that have required UX attributes (constructor arguments) could not be used as ux:Property