+ internal void SetImageByPropertyMap(PropertyMap map)
+ {
+ // Image properties are changed hardly. We should ignore lazy UpdateImage
+ imagePropertyUpdatedFlag = false;
+ cachedImagePropertyMap?.Dispose();
+ cachedImagePropertyMap = null;
+ MergeCachedImageVisualProperty(map);
+
+ // Update _resourceUrl, _desired_width, _desired_height, _fastTrackUploading here.
+ // Those values are C# side cached value.
+ _desired_width = _desired_height = -1;
+ _fastTrackUploading = false;
+
+ if (map != null)
+ {
+ _resourceUrl = "";
+ foreach (int key in cachedNUIImageViewPropertyKeyList)
+ {
+ using PropertyValue propertyValue = map.Find(key);
+ if (propertyValue != null)
+ {
+ if (key == ImageVisualProperty.URL)
+ {
+ propertyValue.Get(out _resourceUrl);
+ }
+ else if (key == ImageVisualProperty.DesiredWidth)
+ {
+ propertyValue.Get(out _desired_width);
+ }
+ else if (key == ImageVisualProperty.DesiredHeight)
+ {
+ propertyValue.Get(out _desired_height);
+ }
+ else if (key == ImageVisualProperty.FastTrackUploading)
+ {
+ propertyValue.Get(out _fastTrackUploading);
+ }
+ }
+ }
+
+ SetProperty(ImageView.Property.IMAGE, new Tizen.NUI.PropertyValue(map));
+ }
+ else
+ {
+ RemoveImage();
+ }
+ }