unoplatform / uno

Open-source platform for building cross-platform native Mobile, Web, Desktop and Embedded apps quickly. Create rich, C#/XAML, single-codebase apps from any IDE. Hot Reload included! 90m+ NuGet Downloads!!
https://platform.uno
Apache License 2.0
9k stars 732 forks source link

BindableUIProgressView does not support coder, frame or style #1430

Open ghuntley opened 5 years ago

ghuntley commented 5 years ago

What would you like to be added:

UIKit.UIProgressView supports four constructors:

public UIProgressView();
public UIProgressView(NSCoder coder);
public UIProgressView(CGRect frame);
public UIProgressView(UIProgressViewStyle style);
protected UIProgressView(NSObjectFlag t);

Currently BindableUIProgressView only exposes

public UIProgressView();

Why is this needed:

Enable more scenarios, such as UIProgressViewStyle.Bar

For which Platform:

Anything else we need to know?

ghuntley commented 5 years ago

Going to leave this as a help wanted and good first issue. See https://github.com/unoplatform/uno/pull/1429 as an example of what needs to be done.

Niladri24dutta commented 5 years ago

@ghuntley Can I work on this? already created a fork for my changes following the changes for #1429 . Is there any unit test case that I need to update?

anchepiece commented 5 years ago

Hello @ghuntley, @Niladri24dutta :wave:,

Thanks to the Uno team for open sourcing this platform.

It looks like there are a few places where surfacing some constructors would be useful. If @Niladri24dutta takes this issue, could you create new issues to track based on priority?

ghuntley commented 5 years ago

Welcome to Uno :wave: I'm chuffed to see two brand new faces to the project digging in and asking to help.

@Niladri24dutta I've assigned this issue to you. Dig in!

@anchepiece rather than open a GitHub issue and pull-request per control could you please instead batch them in a single pull-request?

Here's what you both gotta know, we don't require or need test coverage for src/Uno.UI/Controls/Bindable* as that crosses into the integration test territory and that isn't needed in this case because we trust that Xamarin iOS and Xamarin Android works.

On the topic of constructors it might be worth also reading https://github.com/unoplatform/workshops/tree/master/uno-bootcamp/modules/05-Native-intercompatibility#-native-constructors-are-automatically-provided and the impl of a consumer over at https://github.com/unoplatform/workshops/blob/master/uno-bootcamp/modules/05-Native-intercompatibility/TodoApp/TodoApp.Shared/Controls/NativeProgress.Droid.cs#L14

Anyway src/Uno.UI/Controls/Bindable* exists to make controls bindable from XAML that may not be bindable. A good example of this is with the iOS platform values often aren't exposed as properties and instead values are accessed by calling methods. Thus Bindable are shims. :-)

GitHub
unoplatform/workshops
workshops, study guides and learning materials for the Uno Platform - unoplatform/workshops
GitHub
unoplatform/workshops
workshops, study guides and learning materials for the Uno Platform - unoplatform/workshops
anchepiece commented 5 years ago

@ghuntley Thanks, pushed this work into the single pull referenced. Feedback and suggestions welcome.

Niladri24dutta commented 5 years ago

@jeromelaban @ghuntley I am working on the UIProgressView . is this already done since the issue is closed ?

anchepiece commented 5 years ago

@Niladri24dutta Nope, UIProgressView was not included in the pull request. I suggest reopening this issue to track your changes.

@jeromelaban Can we return this to track the additional changes? Thanks!

sasakrsmanovic commented 2 years ago

@anchepiece Let us know if you will will be working on this one or you need help with it . I''ll make a point to check in with you in a few days to see how it is going as we are opening up this issue for all Hacktoberfest 2022 participants.