Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Spec] Deconstruct DualScreen Nuget into Essentials and Maui.Core (Investigating) #1164

Closed
PureWeen opened this issue Jun 3, 2021 · 9 comments
Labels
area-controls-twopaneview TwoPaneView / DualScreen proposal/open t/enhancement ☀️ New feature or request
Milestone

Comments

@PureWeen
Copy link
Member

PureWeen commented Jun 3, 2021

Merge DualScreen nuget into Maui.Controls and Maui.Essentials

  • TwoPaneView
    • This control requires no outside libraries. It inherits from Grid and just modifies grid properties based on device parameters. This control could easily just be merged into Maui.Controls as a main control people can use
  • DualScreenInfo
    • All of the native APIs that back this class are now part of the Window AndroidX nuget so we can just move this into essentials
@conceptdev
Copy link
Contributor

The Xamarin.AndroidX.Window binding has been updated to match latest Google (details here), and the Xamarin Surface Duo samples are updated to use it.

For .NET MAUI, the ideal situation would be:

  • Microsoft.Maui.Controls.DualScreen (namespace update to Xamarin.Forms.DualScreen)
  • If the AndroidX libraries are also having their namespace updated, create an updated version of Xamarin.AndroidX.Window for .NET MAUI
  • Regarding the two points above: how do we get the existing layout and helper class migrated?
    • Put them in a newer version of Microsoft.Maui.Controls.DualScreen
    • Split them into other locations (eg. Essentials)

The first two bullets are probably the minimum we need to to ensure customers can continue to build dual-screen apps. The third bullet (and the topic of this issue) is a desirable update which would bring compatibility to a wider variety of devices such as foldables from other manufacturers.

@mattleibow mattleibow added the legacy-area-controls Label, Button, CheckBox, Slider, Stepper, Switch, Picker, Entry, Editor label Nov 12, 2021
@PureWeen PureWeen added this to the .NET 7 milestone May 27, 2022
@DamianSuess
Copy link

@PureWeen just checking, this performed in PR #5020, correct?

Asking because I'm eager to build upon the Foldable feature when it becomes available. Thank you :)

@Redth Redth modified the milestones: .NET 7 + Servicing, Backlog Aug 30, 2022
@ghost
Copy link

ghost commented Aug 30, 2022

We've moved this issue to the Backlog milestone. This means that it is not going to be worked on for the coming release. We will reassess the backlog following the current release and consider this item at that time. To learn more about our issue management process and to have better expectation regarding different types of issues you can read our Triage Process.

@logikonline
Copy link

Can this be reconsidered before year's end?

@jfversluis
Copy link
Member

@DamianSuess the NuGet should be available now, released as part of .NET 7.

@logikonline why is it of particular interest to you? The functionality is available in a NuGet right now, this only speaks of refactoring some code basically.

@DamianSuess
Copy link

DamianSuess commented Dec 1, 2022

@jfversluis you're the man! I'll be sure we'll get it into our next sprint for validation w/ our project.
I love Xamarin.Forms but I enjoy faster running apps with the latest supported MAUI even better 😉

@logikonline
Copy link

For the same reason @DamianSuess outlined, I moved a large project to Maui, but I am one of the outliers that have a Duo 2 and like to offer a better experience for those devices too.

If in your refactoring, can you also provide an option on the Shell to recognize the control being used on the page. The reason for this, if a Duo is in full-screen mode (across both screens), the tabbar will try to center, and the middle tab is unusable. I resolved this with a custom renderer on the old MasterDetail to change the gravity of the menu to favor a right or left align.

The Shell really should offer this to make the Duo usable imo.

@jfversluis
Copy link
Member

Gotcha! But then, if I understand correctly @logikonline you're more interested in this functionality being available (which it is now) than this code being in a different place (what this issue is technically about)?

As for features, it's probably best to open something new if you want to see things added/changed. You already did mention though yourself that you are probably one of the outliers so I'm not sure how high it would rank in terms of priority. If this is something you'd really like, maybe it would be best to see if you can help us (and thus yourself) out by making one or more contributions.

@logikonline
Copy link

logikonline commented Dec 2, 2022

No. I'll continue to write the custom renderer for the Shell, but I can't offer the functionality for the Duo since it is only available for XF.

But if the individual brings the code to refactor to Maui does the work, it would be nice if they provided the addition since it isn't in XF & is a known limitation.

I view Maui as an improvement in the experience, not merely a translation.

An outlier is that I have a Duo, although that is exclusively a Microsoft product which other vendors will show bias to their platforms.

@PureWeen PureWeen added area-controls-twopaneview TwoPaneView / DualScreen and removed control-dualscreen labels May 6, 2024
@dotnet dotnet locked and limited conversation to collaborators May 6, 2024
@PureWeen PureWeen converted this issue into discussion #22238 May 6, 2024
@Eilon Eilon removed the legacy-area-controls Label, Button, CheckBox, Slider, Stepper, Switch, Picker, Entry, Editor label May 10, 2024

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Labels
area-controls-twopaneview TwoPaneView / DualScreen proposal/open t/enhancement ☀️ New feature or request
Projects
None yet
Development

No branches or pull requests

8 participants