Skip to content

Commit

Permalink
Adds Tizen backend (#2360)
Browse files Browse the repository at this point in the history
* [Tizen] Add Resizetizer Tizen Implementation

* Treat nullablity for buidling net6 project

* Bump to latest and fix build error

* Fix Tizen Handlers

* Fix font and SingleProject to locate manifest

* Update tizen manifest path

* Bump to latest

- Adds the GraphicsViewHandler and ShapeViewHandler
- Apply one stop shop UseMauiControls (#1157)
- Implements new APIs for each IView
- and so on

* Bump to latest

- Including register images and set Compat Service Provider (#1306), and so on

* [SingleProject] Update intermediate asset path

* Bump to latest

- Apply to start adding in APIs for adding legacy renderers via assembly scanning (#1333)
- Update to IMauiContext (#1357)
- and so on

* Remove duplicate type for legacy compat renderers

* Fix Color Extension

* Adds Microsoft.Maui.Tizen.sln

* Rebase to upstream latest main

* InitialzationOption for MauiApp

* Bump to latest

- Apply to patch related to Animation (#1436)
- Apply to register Microsoft.Maui.Graphics Platforms (#1441)
- and so on.

* Enable to DisplayResolutionUnit

* Implement Clip

* Implement ModalNavigationService

* Update build targets for single project

* Remove comment

* Remove image resource on Tizen project

* Remove space

* Bump to latest

- Added GestureManager.Tizen.cs (#1489)
- Set handler to shimmed handler so it doesn't get reshimmed  (#1483)
- Turn XamlC on by default (#1422)
- and so on

* Fix SwitchHandler

* Fix compatibility issue (#41)

* Fix compatibility issue

* Fix Compatibility Resource path

* Fix Transformations (#42)

* Fix the compat LayoutRenderer (#43)

* Bump to latest

- Modal Navigation Manager (#1563)
- Implement the basic WindowHandler (#1468)
- Don't extract native defaults, meaning users can no longer reset a color back to a platform theme (#1485)
- Implement Alerts (Alert, Prompt and ActionSheet) (#1328)
- And so on.

* Fix Layout margin issue (#44)

* [SingleProject] Fix Issues (#50)

* Fix RefreshView related issue (#51)

* Fix RefreshView related issue

* Fix StreamImageSourceService.Tizen

* Bumt to latest

- Effects (#1574)
- Improve Window and AnimationManager (#1653)
- and so on

* Add Microsoft.Maui.Graphics.Skia as PackageReference

* Update Compatibility projects (*.csproj) for Tizen

* Add AlertManager on Tizen (#57)

* Add AlertManager on Tizen

* Add null check and remove whitespace

* Remove watch profile code

* Change subscriber object

* Add Essentials.Samples.Tizen (#24)

* Add Essentials.Samples.Tizen

* Add guard for null exception

* Fix Essentials.Samples for Tizen

* Fix csproj for net6

* Remove Forms.Init

* Fix build error (#60)

* Update referenced Tizen.UIExtensions version (#61)

* Add BlazorWebView skeleton code (#62)

* Bump to latest (#71)

- Window lifecycle (#1754)
- Move New Navigation Handler to Core and make it internal (#1800)
- Scrollview handler (#1669)
- ScrollView Resize + Window Handler Resize (#1676)
- Font AutoScalingEnabled (#1774)
- Rename Font Properties (#1755)
- Update layout system to ensure native measure/arrange are called for all controls, even from Page subclasses (#1819)
- IContainer as IList<IView> (#1724)
- Implement Layout padding for new StackLayouts and GridLayout (#1749)
- Delete all the TabIndex, TabStop, Focusable things! (#1777)
- Introduce SetSemanticFocus API via SemanticExtensions (#1829)
- Improve Window and AnimationManager (#1653)
- And so on

* Remove IPage on Tizen (#72)

- Merge IFrameworkElement and IView and Remove IPage (#1875)

* Remove obsolete methods from Controls (#73)

- [Controls] Remove obsolete methods from Controls (#1644)

* Fix issue related rebase (#74)

* Add Blazor webview (#67)

* Add Blazor webview

* Replace space to tab

* remove space

* Fix AlertManager prompt layout issue (#76)

* Fix entry cursor error (#68)

* Fix entry cursor error

* Update code referring to android extension

* Remove duplicate code & Add exception cases

* Code fixes for consistency

* Fix nullable issue (#77)

* Fix Image loading (#78)

* Fix nested layout issue (#79)

Co-authored-by: 허강호/Common Platform Lab(SR)/Principal Engineer/삼성전자 <kangho.hur@samsung.com>

* Fix issues caused by bump up (#75)

* Fix issues caused by bump up

* Update Tizen file provider

* Update file provider with proper path

* Replace StackLayout from Compatibility.StackLayout (#82)

* Fix unmatched partial method (#84)

* Bump to latest

* Fix GetDesiredSize (#87)

* Fix GetDesiredSize

* update for readability

* Fix ScrollView content absolute position (#89)

* Fixes incorrect parameter type for ILayoutManager.ArrangeChildren (Rectangle -> Size). (#91)

* Make the HandlerToRendererShim simple

* Revert "Fixes incorrect parameter type for ILayoutManager.ArrangeChildren (Rectangle -> Size). (#91)" (#97)

This reverts commit c54ac83.

* Add GestureManager (#96)

* Add GestureManager

* Fix DragGestureHandler

* Fix GestureManager

* Check nullable enable

* Fix Label LineBreakMode using workaround (#98)

* Refactor the LayoutHandler (#99)

* Fix layout measure issue (#100)

* Bump to latest

* Fix LayoutHandler Update issue (#103)

* Fix LayoutHandler Update issue

* Implement InvalidateMeasure propagation

* Update MapBackground

* Fix default font size issue (#113)

* Add InitializationOptions (#107)

* Add InitializationOptions

* Set UseSkiaSharp true as default

* Apply DP as default

* Fix SKClipperView to have proper size (#115)

* Fix Essentials sample (#108)

* Fix Essentials sample for Tizen

* Remove UseSkiaSharp flag

* Remove MaterialComponents

* Fix Tizen flag

* Remove CustomRenderer

* Add ShellHandler (#64)

* Add ShellHandler

* Move ShellView into Platform/Tizen

* Update ShellView

* Move the code for embedded tizen resources to csproj

* Add UIExtenstions for shell

* fix ViewHandlerOfT dispose (#120)

* MAUI workload for Tizen (#66)

* Fix build and runtime error after bumping to latest code

* Fix HandlerToRendererShim dispose (#127)

* Add ShellSearchView (#121)

* Add ShellSearchView

* Fix the layout issue in ShellSearchResultList

* Enable nullable

* Fix maximum height of ShellSearchResultList

* Fix scaling issue on Clip (#130)

* Fix Shell build error on net6 project (#133)

* Fix DisplayResolutionUnit sync issue (#134)

* Fix build error (#137)

* Replace SkiaGraphicsView with local patch (#135)

This commit will be revert when upstream code is updated

* Fix GraphicsView scaling issue (#136)

* Support Min/Max Height/Width on IView and applying MauiApp/MauiAppBuilder pattern

- Support Min/Max Height/Width on IView (#2265)
- Updating .NET MAUI to use MauiApp/MauiAppBuilder pattern and use MS.Extensions.DependencyInjection (#2137)

* Fix Tizen Templates (#144)

* Fix webview break caused by updated dependency (#143)

* Update the Tizen.UIExtension.ElmSharp version (#145)

* Fix Essentials (#146)

* Fix Essentials sample for tizen

* Add SemanticScreenReader for Tizen

* Fix Startup

* Reomve internal UIExtensions compoments for Shell (#147)

* Implement PlaceholderColor property in SearchBarHandlers

- Implement PlaceholderColor property in SearchBarHandlers (#1512)

* Adds missing implementation after bumping to latest main

* Fix Control.Samples.Singleproject Main correctly (#150)

* [Tizen] Add support for JS root components in BlazorWebView (#151)

* [Tizen] Adds BoxView Handler

* [Tizen] Update project templates to work with safe characters

- Update project templates to work with safe characters (#2368)

* [Tizen] Implement ProgressColor property in ProgressBarHandlers

- Implement ProgressColor property in ProgressBarHandlers (#600)

* [Tizen] Fix project template's tizne-manifest.xml correctly

* [Tizen] Handle ContentViews and templated content in new layout system

* [Tizen] WebView Handlers

* [Tizen] Use Color.IsDefault in Compat renderers

* Fix Essentials DeviceDisplay (#156)

* Fix Essentials.DeviceDisplay

* Fix DeviceDisplay

* [Tizen] Fix build error on net6

* Fix Layout remove issue (#164)

* Fix Layout remove issue

* Fix layout remove on Dispose

* Bump to latest (rc1)

- ImageButtonHandler and Handler Re-usability (#2352)
- Remove IBoxView (#2619)
- Add SupportedOSPlatformVersion (#2565)
- Merge all the .NET 6 projects/solutions (#2505)
- Shadow Support (#570)
- Add IndicatorView handler(#2038)

* [Tizen] Initial Border control

* [Tizen] Apply graphics related code review feedback

* [Tizen] Remove Device.OpenUri impl and Device.Flags/SetFlags

* [Tizen] Fix Display Prompt Alerts

* [Tizen] Fix WebView Handler

* [Tizen] Fix ShapeViewHandler

* [Tizen] Port H/V TextAlignment to Editor/Picker Handler

* [Tizen] Add TVShellView (#183)

* [Tizen] Add TVShellView

* [Tizen] Update TVShellView

* [Tizen] Update NativeView for Shell

* [Tizen] Update ShellView

* [Tizen] Change default FlyoutBackgroundColor for TV

* [Tizen] Enable nullable

* Refactor WrapperView to draw drawable features (#186)

* Refactor WrapperView to draw drawable features

* Update class names and devide files

* Override NeesContainer to remove duplicated code

* Update class names

* [Tizen] Adds ApplicationHandler

* Remove dispose action on ImageSourceServiceResult (#192)

* Fix Background issue of Frame (#193)

* Fix UpdateBackground (#194)

* Fix UpdateBackground

* Add ContentView Background mapper

* Fix Editor/Entry/Label/Layout Background

* Add IWrapperViewCanvas.Content

* Add PageHandler Background mapper

* Restore WrapperView

* Remove unnecessary namespace

* [Tizen] Fix build error on PageHandler

* [Tizen] Fix ButtonHandler events

* [Tizen] Use new dispatcher instance in Tizen's BlazorWebView

* [Tizen] Fix DpiPath correctly

* [Tizen] Fix Compatibility and Controls.Sample build error

* [Tizen] Initial CollectionViewHandler

* [Tizen] Apply ITextButton related changes

* [Tizen] Add Shadows (#233)

* [Tizen] Add Shadows

* [Tizen] Apply review comments

* [Tizen] Move updating shape in proper position

* [Tizen] Update BackgroundDrawable

* [Tizen] Apply review comments

* [Tizen] Add BorderDrawable (#224)

* Move to platform specific

* Fix border handler for Tizen

* Rename ToDrawable method

* Fix border content layout

* Fix BorderView

* Apply rebase

* [Tizen] Fix entry cursor issue (#222)

* Fix entry cursor issue

* Fix UpdateSelectionLength method

* [Tizen] Remove TVNavigationDrawer TVNavigationView (#223)

* [Tizen] Remove TVNavigationDrawer TVNavigationView

* [Elmsharp] Update Tizen.UIExtensions version

* [Tizen] Remove Forms DeviceInfo and use Essentials

* [Tizen] Initial Multi Window support

* [Tizen] Fix MauiContext

* [Tizen] Refactor Border by defining MauiDrawable (#248)

* [Tizen] Refactor Border by defining MauiDrawable

* [Tizen] Apply review comments

* [Tizen] Remove unnecessary type casting

* [Tizen] Move getting path logic to drawable

* [Tizen] Obsolete AndExpand & Remove IsolatedStorage

* Fix layout measure issue (#254)

* Fix layout measure issue

* Update src/Compatibility/Core/src/Tizen/Platform.cs

Co-authored-by: 허강호/Common Platform Lab(SR)/Principal Engineer/삼성전자 <kangho.hur@samsung.com>

Co-authored-by: 허강호/Common Platform Lab(SR)/Principal Engineer/삼성전자 <kangho.hur@samsung.com>

* Fix tizen solution (.sln) correctly

* [Tizen] Add VerticalTextAlignment

* [Tizen] Move IDispatcher logic out of IPlatformServices

* [Tizen] Fix Scoping of MauiContext

* Fix NavigationPage navigating issue (#263)

* [Tizen] Add ImageButton handler (#261)

* [Tizen] Add ImageButton handler

* Add comment

* Fix Compatibility build error (#265)

* Fix catch exception for sample (#262)

* Fix catch exception for control sample

* Fix exception type for Tizen

* Add bracket

* [Tizen] Use CoreApplication as native app type

* Fix ScrollView (#269)

* [Tizen] Add Collectionview adaptor (#271)

* [Tizen] Add CollectionView Adaptors

* Remove unnecessary override

* Fix ConvertToScaledDP

* Fix flag

* Fix item selected event

* Apply review comments

* Move to extension for CollectionView

* [Tizen] Remove legacy Log and use ILogger

* [Tizen] Applying upstream changes

* [Tizen] Add ContainerView to Layout if it's present

* [Tizen] Initial Reloadyfy support

* [Tizen] Initial IVisualDiagnosticOveraly support

* [Tizen] Setup first set of Automation Properties

* [Tizen] Move types in the Platform folder into the Platform namespaces

* Fix CollectionView layout issue (#288)

* Fix CollectionView layout issue

* Remove unnecessary code

* [Tizen] ZIndex proof-of-concept

* Fix ScrollView ContentSize and Padding margin (#291)

* Fix ScrollView ContentSize and Padding margin

* Fix MapRequestScrollTo

* Update src/Core/src/Handlers/ScrollView/ScrollViewHandler.Tizen.cs

Co-authored-by: 허강호/Common Platform Lab(SR)/Principal Engineer/삼성전자 <kangho.hur@samsung.com>

* Update src/Core/src/Handlers/ScrollView/ScrollViewHandler.Tizen.cs

Co-authored-by: 허강호/Common Platform Lab(SR)/Principal Engineer/삼성전자 <kangho.hur@samsung.com>

* Remove MapContentSize

Co-authored-by: 허강호/Common Platform Lab(SR)/Principal Engineer/삼성전자 <kangho.hur@samsung.com>

* Implements WindowOverlay and VisualDiagnosticsOverlay (#294)

* Implements WindowOverlay and VisualDiagnosticsOverlay

* Apply code review

* [Tizen] Fix Image Handler

* Remove GetDesiredSize (#295)

* [Tizen] Fix ButtonHandler

* Fix UpdateSemantics (#299)

* Fix UpdateSemantics

* Fix Semantics mapping

* Apply comment

* [Tizen] Organize and centralize HandlerExtensions

* Refactor WrapperView and Fix Issue (#302)

* Refactor WrapperView

* Use Thickness type for Shadow margin

* Update variable name

* Update class name to GraphicsExtensions

* Fix essentials sample for Tizen (#305)

* [Tizen] Fix NativeView casting issue

* [Tizen] Update the UIExtensions package version

* [Templates] Update Tizen Template (#311)

* [Tizen] Initial Flyout handler

* Fix BlazorWebview binary resource issue (#317)

* [Tizen] Handle query strings in Blazor static assets by trimming them out

* Refactor MauiContext (#330)

* [Tizen] Adds PaintExtensions

* [Tizen] Update compat's Platform

* [Tizen] Fix controls build error

* [Tizen] Adds RadioButton Handler

* [Tizen] Implement CursorPosition in IEditor/ITextInput Handlers

* [Tizen] Initial SwipeView Handler

* [Tizen] Remove GetNative

* [Tizen] Update Microsoft.NET.Sdk.Maui/WorkloadManifest

* [Tizen] Add FormattedText property support to Label in Controls

* [Tizen] Bump to latest

* [Tizen] Use legacy compat renderers temporarily

* [Tizen] Use BorderView

* [SingleProject] Update splash updator (#353)

* [singleproject] update splash updator

* [singleproject] update icon updator

* [singleproject] Fix default icon path

* [Tizen] Fix BlazorWebView build error (#355)

* [Tizen] Fix BlazorWebView build error

* [Tizen] Update tizen handler

* [Tizen] Implement IPlatformApplication.Current

* [Tizen] Implements missing WebViewHandler APIs

* [Tizen] Refactor AppInfo/PhoneDialer into interface

* [Tizen] Fix INativeViewHandler to return more expected NativeView

* [Tizen] Remove legacy TFMs

* [Tizen] Refactor DeviceInfo and Flashlight to use an interface

* [Tizen] Remove `IPlatformInvalidate` and `Device.Invalidate()

* [Tizen] Refactored Geocoding to an interface

* [Tizen] Adds Microsoft.Maui.Graphics.Skia as package reference

* [Tizen] Refactored Map, SMS, Contacts to an interface

* [Tizen] Bump to latest

* [Tizen] Fix Essential sample build error

* [Tizen] Fix Workload build error

* Add Platform code on Controls.Sample.Sandbox for tizen (#382)

* Fix processing MauiAssets (#383)

Co-authored-by: Jay Cho <chojoong@gmail.com>

* [Tizen] Refactor Essential's implementations

* [Tizen] Renaming public APIs Native -> Platform

* [Tizen] Update template & sample's tizen-manifest.xml

* Fix DotNet.csproj to build tizen (#372)

* [Tizen] Update ImageHandler and ImageButtonHandler

* [Tizen] Add handling for TextTransform for SearchBar/Editor/Entry

* [Tizen] Interfaced Handler for Label, Page, NavigationView, Picker,
ProgressBar, SwipeView

* [Tizen] Initial MenuBar

* [Tizen] Moved GetPlatformSize logic into a new service

* [Tizen] Interfaced handler for Switch, TimePicker, WebView, Slider,
SearchBar, RefreshView, RadioButton

* [Tizen] Fix build error after rebasing

* [Tizen] Use StringComparison.Ordinal everywhere

* [Tizen] Move TabbedPageHandler to TabbedViewHandler

* [Tizen] Add more APIs to IDispatcher

* [Tizen] Remove Application.Properties implementation

* [Tizen] Backport p14 changes

* [Tizen] Implement InputTransparent

* [Tizen] Loaded/Unloaded events and propagate Window

* [Tizen] Fix Path shapes rendering issues

* [Tizen] Fix CI build error on ImageButtonHandler

* [Tizen] Optimize ConfigureFonts and Logging during startup

* [Tizen] Make sure StrokeDashArray property invalidate the Shape

* [Tizen] Implement FillRule property in Polygon/PolylineHandler

* [Tizen] Add install tizen to provision.yml

* [Tizen] Simplify OnPlatformExtension

* [Tizen] Use interface on mappers of shapes

* [Tizen] Install tizen workload on dotnet-local-workloads

* [Tizen] Move package version into Versions.props

* [Tizen] Move 'UseMauiApp' call into "Controls"

* [Tizen] update template description of localized string files

* [Tizen] Update the package reference of Microsoft.Maui.Dependencies

* [Tizen] Add IWindow.DisplayDensity

* [Tizen] Initial VisualDiagnostic Image APIs

* [Tizen] Mark all the Device [Obsolete]

* [Tizen] Mark renderers and related base classes as obsolete

* [Tizen] Platform behavior implementation

* [Tizen] Clean unnecessary resource files

* [Tizen] Graphics events

* [Tizen] Modernize Essentials Namepsaces

* [Tizen] Fix Compat's control gallery build error

* Fix ClipperView background color issue (#447)

* Fix typo (#450)

* [Tizen] Initial support for configuring the underlying Web view settings

* [Tizen] BlazorWebView public API tracking

* [Tizen] use latest tizen workload as default

* [Tizen] specify sdk version to avoid ci build error

* [Tizen] Keep the text wrapping/truncation and max lines stuff in Controls

* [Tizen] Remove downcasts in BlazorWebView

* [Tizen] BlazorWebView API review changes: Shared sources

* [Tizen] add tizen TFM optional

* [Tizen] adding informative comments for template

* [Tizen] Set IncludeTizenTargetFrameworks correctly

* [Tizen] install maui-tizen

Co-authored-by: JoonghyunCho <jh5.cho@samsung.com>
Co-authored-by: Seungkeun Lee <sngn.lee@samsung.com>
Co-authored-by: 김성수/Common Platform Lab(SR)/Staff Engineer/삼성전자 <sung-su.kim@samsung.com>
Co-authored-by: 박인서/Common Platform Lab(SR)/Associate/삼성전자 <inseo9.park@samsung.com>
Co-authored-by: 민성현/Common Platform Lab(SR)/Staff Engineer/삼성전자 <shyun.min@samsung.com>
Co-authored-by: Jay Cho <chojoong@gmail.com>
  • Loading branch information
7 people committed Apr 15, 2022
1 parent 2d765b7 commit 438aef2
Show file tree
Hide file tree
Showing 680 changed files with 18,084 additions and 2,376 deletions.
15 changes: 15 additions & 0 deletions .nuspec/Microsoft.Maui.Controls.MultiTargeting.targets
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,12 @@
<Compile Remove="**\*.uwp.cs" />
<None Include="**\*.uwp.cs" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder)" />
</ItemGroup>
<ItemGroup Condition=" '$(_MauiTargetPlatformIsTizen)' != 'True' ">
<Compile Remove="**\**\*.Tizen.cs" />
<None Include="**\**\*.Tizen.cs" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder)" />
<Compile Remove="**\Tizen\**\*.cs" />
<None Include="**\Tizen\**\*.cs" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder)" />
</ItemGroup>
<ItemGroup>
<Compile Remove="bin\**;obj\**" />
<None Remove="bin\**;obj\**" />
Expand Down Expand Up @@ -99,6 +105,11 @@
<DefineConstants>$(DefineConstants);MACCATALYST;IOS</DefineConstants>
</PropertyGroup>

<!-- Tizen -->
<PropertyGroup Condition=" '$(_MauiTargetPlatformIsTizen)' == 'True' ">
<DefineConstants>$(DefineConstants);TIZEN</DefineConstants>
</PropertyGroup>

<!-- If this becomes part of the product we will remove these but for now it's useful having them all in one place -->
<ItemGroup Condition=" '$(_MauiTargetPlatformIsAndroid)' == 'True' ">
<PackageReference Include="Xamarin.AndroidX.Lifecycle.LiveData" />
Expand All @@ -120,4 +131,8 @@
<PackageReference Include="Microsoft.Graphics.Win2D" />
<PackageReference Include="Microsoft.Maui.Graphics.Win2D.WinUI.Desktop" />
</ItemGroup>
<ItemGroup Condition=" '$(_MauiTargetPlatformIsTizen)' == 'True' ">
<PackageReference Include="Tizen.UIExtensions.ElmSharp" />
<PackageReference Include="Microsoft.Maui.Graphics.Skia" />
</ItemGroup>
</Project>
6 changes: 6 additions & 0 deletions .nuspec/Microsoft.Maui.Controls.SingleProject.props
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,10 @@
<_MauiUsingDefaultRuntimeIdentifier>true</_MauiUsingDefaultRuntimeIdentifier>
</PropertyGroup>

<!-- Tizen -->
<ItemGroup Condition=" '$(EnableDefaultItems)' == 'true' and '$(SingleProject)' == 'true' and '$(TargetPlatformIdentifier)' == 'tizen' and '$(TizenProjectFolder)' != '' ">
<TizenResource Include="$(TizenResourcePrefix)\**\*" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder);@(TizenTpkUserExcludeFiles)" />
<TizenSharedResource Include="$(TizenSharedPrefix)\**\*" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder);@(TizenTpkUserExcludeFiles)" />
</ItemGroup>

</Project>
16 changes: 15 additions & 1 deletion .nuspec/Microsoft.Maui.Controls.SingleProject.targets
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,18 @@
<EnableDefaultWindowsItems>false</EnableDefaultWindowsItems>
<WindowsProjectFolder Condition=" '$(WindowsProjectFolder)' == '' ">$(PlatformsProjectFolder)Windows\</WindowsProjectFolder>
<WindowsProjectFolder>$([MSBuild]::EnsureTrailingSlash('$(WindowsProjectFolder)'))</WindowsProjectFolder>
<!-- Tizen -->
<EnableDefaultTizenItems>false</EnableDefaultTizenItems>
<TizenProjectFolder Condition=" '$(TizenProjectFolder)' == '' ">$(PlatformsProjectFolder)Tizen\</TizenProjectFolder>
<TizenProjectFolder>$([MSBuild]::EnsureTrailingSlash('$(TizenProjectFolder)'))</TizenProjectFolder>
</PropertyGroup>

<ItemGroup>
<MauiPlatformSpecificFolder Include="$(AndroidProjectFolder)" TargetPlatformIdentifier="android" />
<MauiPlatformSpecificFolder Include="$(iOSProjectFolder)" TargetPlatformIdentifier="ios" />
<MauiPlatformSpecificFolder Include="$(MacCatalystProjectFolder)" TargetPlatformIdentifier="maccatalyst" />
<MauiPlatformSpecificFolder Include="$(WindowsProjectFolder)" TargetPlatformIdentifier="windows" />
<MauiPlatformSpecificFolder Include="$(TizenProjectFolder)" TargetPlatformIdentifier="tizen" />
</ItemGroup>

<PropertyGroup Condition=" '$(SingleProject)' == 'true' and '$([MSBuild]::GetTargetPlatformIdentifier($(TargetFramework)))' == 'android' ">
Expand Down Expand Up @@ -57,6 +62,12 @@
<_SingleProjectWindowsExcludes>$(WindowsProjectFolder)/**/.*/**</_SingleProjectWindowsExcludes>
</PropertyGroup>

<PropertyGroup Condition=" '$(SingleProject)' == 'true' and '$([MSBuild]::GetTargetPlatformIdentifier($(TargetFramework)))' == 'tizen' ">
<TizenManifestFile Condition=" Exists('$(TizenProjectFolder)tizen-manifest.xml') ">$(TizenProjectFolder)tizen-manifest.xml</TizenManifestFile>
<TizenResourcePrefix>$(TizenProjectFolder)res</TizenResourcePrefix>
<TizenSharedPrefix>$(TizenProjectFolder)shared</TizenSharedPrefix>
</PropertyGroup>

<!--
Run before both _MauiInjectXamlCssAdditionalFiles and GenerateMSBuildEditorConfigFileShouldRun because
if for some reason the _MauiInjectXamlCssAdditionalFiles target is not run, we still get in at the
Expand All @@ -82,6 +93,9 @@
<Compile
Condition=" '$(TargetPlatformIdentifier)' == 'windows' and '$(WindowsProjectFolder)' != '' "
Include="$(WindowsProjectFolder)**/*$(DefaultLanguageSourceExtension)" />
<Compile
Condition=" '$(TargetPlatformIdentifier)' == 'tizen' and '$(TizenProjectFolder)' != '' "
Include="$(TizenProjectFolder)**/*$(DefaultLanguageSourceExtension)" />

<!-- Remove all Windows (WinUI) XAML Files from the Windows folder -->
<_MauiXamlToRemove
Expand Down Expand Up @@ -127,4 +141,4 @@
<ProjectCapability Include="LaunchProfilesGroupByPlatformFilters" Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' &gt;= '17.0' " />
</ItemGroup>

</Project>
</Project>
71 changes: 67 additions & 4 deletions .nuspec/Microsoft.Maui.Resizetizer.targets
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@
AssemblyFile="$(_ResizetizerTaskAssemblyName)"
TaskName="Microsoft.Maui.Resizetizer.GenerateSplashStoryboard" />

<UsingTask
AssemblyFile="$(_ResizetizerTaskAssemblyName)"
TaskName="Microsoft.Maui.Resizetizer.TizenSplashUpdater" />

<UsingTask
AssemblyFile="$(_ResizetizerTaskAssemblyName)"
TaskName="Microsoft.Maui.Resizetizer.GenerateSplashAssets" />
Expand Down Expand Up @@ -76,6 +80,7 @@
<_ResizetizerPlatformIsmacOS Condition="'$(_ResizetizerPlatformIdentifier)' == 'macos'">True</_ResizetizerPlatformIsmacOS>
<_ResizetizerPlatformIstvOS Condition="'$(_ResizetizerPlatformIdentifier)' == 'tvos'">True</_ResizetizerPlatformIstvOS>
<_ResizetizerPlatformIsWindows Condition="$(_ResizetizerPlatformIdentifier.Contains('windows')) == 'True'">True</_ResizetizerPlatformIsWindows>
<_ResizetizerPlatformIsTizen Condition="'$(_ResizetizerPlatformIdentifier)' == 'tizen'">True</_ResizetizerPlatformIsTizen>

<ResizetizerIncludeSelfProject Condition="'$(ResizetizerIncludeSelfProject)' == ''">False</ResizetizerIncludeSelfProject>

Expand All @@ -90,9 +95,10 @@
<_ResizetizerIsiOSApp Condition="( '$(_ResizetizerPlatformIsiOS)' == 'True' OR '$(_ResizetizerPlatformIsMacCatalyst)' == 'True' ) And ('$(OutputType)' == 'Exe' Or '$(IsAppExtension)' == 'True')">True</_ResizetizerIsiOSApp>
<_ResizetizerIsWPFApp Condition="'$(IsApplication)' == 'True' And '$(NuGetRuntimeIdentifier)' == 'win' And '$(_ResizetizerPlatformIsWindows)' == 'True'">True</_ResizetizerIsWPFApp>
<_ResizetizerIsWindowsAppSdk Condition="('$(ProjectReunionWinUI)'=='True' Or '$(WindowsAppSDKWinUI)'=='True') And '$(_ResizetizerPlatformIsWindows)' == 'True' And ('$(OutputType)' == 'WinExe' Or '$(OutputType)' == 'Exe')">True</_ResizetizerIsWindowsAppSdk>
<_ResizetizerIsTizenApp Condition="'$(_ResizetizerPlatformIsTizen)' == 'True'">True</_ResizetizerIsTizenApp>
</PropertyGroup>

<PropertyGroup Condition="'$(_ResizetizerIsAndroidApp)' == 'True' Or '$(_ResizetizerIsiOSApp)' == 'True' Or '$(_ResizetizerIsWPFApp)' == 'True' Or '$(_ResizetizerIsWindowsAppSdk)' == 'True'">
<PropertyGroup Condition="'$(_ResizetizerIsAndroidApp)' == 'True' Or '$(_ResizetizerIsiOSApp)' == 'True' Or '$(_ResizetizerIsWPFApp)' == 'True' Or '$(_ResizetizerIsWindowsAppSdk)' == 'True' Or '$(_ResizetizerIsTizenApp)' == 'True'">
<_ResizetizerIsCompatibleApp>True</_ResizetizerIsCompatibleApp>

<ResizetizeDependsOnTargets>
Expand Down Expand Up @@ -190,10 +196,29 @@
</ProcessMauiFontsBeforeTargets>
</PropertyGroup>

<!-- Tizen -->
<PropertyGroup Condition="'$(_ResizetizerIsTizenApp)' == 'True'">
<ResizetizerPlatformType>tizen</ResizetizerPlatformType>

<ResizetizeBeforeTargets>
$(ResizetizeBeforeTargets);
PrepareResources;
</ResizetizeBeforeTargets>

<ResizetizeAfterTargets>
$(ResizetizeAfterTargets);
ResizetizeCollectItems;
</ResizetizeAfterTargets>

<ProcessMauiFontsAfterTargets>
$(ProcessMauiFontsAfterTargets);
ResizetizeCollectItems;
</ProcessMauiFontsAfterTargets>
</PropertyGroup>

<!-- Finds absolute paths to any MauiImage in this project -->
<!-- App head projects will invoke this target on their project references to collect images -->
<Target Name="GetMauiItems" Outputs="@(ExportedMauiItem)">

<ItemGroup>
<MauiItem Include="@(MauiImage)" ItemGroupName="MauiImage" Condition="'%(MauiImage.ForegroundFile)' == ''" />
<MauiItem Include="@(MauiImage)" ItemGroupName="MauiImage" Condition="'%(MauiImage.ForegroundFile)' != ''" ForegroundFile="$([System.IO.Path]::GetFullPath('%(MauiImage.ForegroundFile)'))" />
Expand Down Expand Up @@ -295,13 +320,20 @@
<!-- Windows does not recognize %(LogicalName), so we must copy it to %(Link) -->
<MauiAsset Update="@(MauiAsset)" Link="%(MauiAsset.LogicalName)" Condition="'%(MauiAsset.Link)' == '' And '%(MauiAsset.LogicalName)' != ''" />
</ItemGroup>
<PropertyGroup Condition="'$(_ResizetizerIsTizenApp)' == 'True'">
<_MauiAssetItemMetadata>TizenTpkFileName</_MauiAssetItemMetadata>
</PropertyGroup>
<ItemGroup Condition="'$(_ResizetizerIsTizenApp)' == 'True'">
<MauiAsset Update="@(MauiAsset)" Link="%(MauiAsset.LogicalName)" Condition="'%(MauiAsset.Link)' == '' And '%(MauiAsset.LogicalName)' != ''" />
</ItemGroup>
<GetMauiAssetPath
ProjectDirectory="$(MSBuildProjectDirectory)"
ItemMetadata="$(_MauiAssetItemMetadata)"
Input="@(MauiAsset)">
<Output ItemName="AndroidAsset" TaskParameter="Output" Condition="'$(_ResizetizerIsAndroidApp)' == 'True'" />
<Output ItemName="Content" TaskParameter="Output" Condition="'$(_ResizetizerIsiOSApp)' == 'True'" />
<Output ItemName="ContentWithTargetPath" TaskParameter="Output" Condition="'$(_ResizetizerIsUWPApp)' == 'True' Or '$(_ResizetizerIsWindowsAppSdk)' == 'True'" />
<Output ItemName="TizenResource" TaskParameter="Output" Condition="'$(_ResizetizerIsTizenApp)' == 'True'" />
</GetMauiAssetPath>
</Target>

Expand Down Expand Up @@ -348,7 +380,7 @@
<GenerateSplashAssets
Condition="'$(_ResizetizerIsUWPApp)' == 'True' Or '$(_ResizetizerIsWindowsAppSdk)' == 'True'"
IntermediateOutputPath="$(_MauiIntermediateSplashScreen)"
MauiSplashScreen="@(MauiSplashScreen)"
MauiSplashScreen="@(MauiSplashScreen)"
/>
<ItemGroup Condition="'$(_ResizetizerIsUWPApp)' == 'True' Or '$(_ResizetizerIsWindowsAppSdk)' == 'True'">
<_MauiSplashAssets Include="$(_MauiIntermediateSplashScreen)**\*" />
Expand All @@ -358,6 +390,11 @@
<FileWrites Include="@(_MauiSplashAssets)" />
</ItemGroup>

<!-- Tizen -->
<ItemGroup Condition="'$(_ResizetizerIsTizenApp)' == 'True'">
<MauiImage Include="@(MauiSplashScreen)" />
</ItemGroup>

<!-- Stamp file for Outputs -->
<Touch Files="$(_MauiSplashStampFile)" AlwaysCreate="True" />
<ItemGroup>
Expand Down Expand Up @@ -437,6 +474,11 @@

</ItemGroup>

<!-- Tizen -->
<ItemGroup Condition="'$(_ResizetizerIsTizenApp)' == 'True'">
<TizenTpkUserIncludeFiles Include="@(_MauiFontCopied)" Condition="'@(_MauiFontCopied)' != ''" TizenTpkSubDir="res\fonts\" />
</ItemGroup>

<!-- iOS Only -->
<!-- If on Windows, using build host, copy the files over to build server host too -->
<ItemGroup Condition="'$(BuildSessionId)' != '' And '$(_ResizetizerIsiOSApp)' == 'True' And '$(IsMacEnabled)'=='true'">
Expand Down Expand Up @@ -479,6 +521,13 @@
Images="@(MauiImage->Distinct())">
</ResizetizeImages>

<!-- Tizen - Move splash images to a specific location -->
<TizenSplashUpdater
Condition="'$(_ResizetizerIsTizenApp)' == 'True' And '@(MauiSplashScreen)' != ''"
IntermediateOutputPath="$(_MauiIntermediateImages)"
ManifestFile="$(TizenManifestFile)"
MauiSplashScreen="@(MauiSplashScreen)" />

<ItemGroup>
<!-- Get Images that were generated -->
<!-- Either from the task, or if the task was skipped (up to date), use the wildcard lookup -->
Expand Down Expand Up @@ -548,6 +597,20 @@
<FileWrites Include="@(_ResizetizerCollectedImages)" />
</ItemGroup>

<!-- Tizen -->
<PropertyGroup>
<ResizetizerIntermediateOutputAbsolutePath>$([System.IO.Path]::GetFullPath('$(_MauiIntermediateImages)'))</ResizetizerIntermediateOutputAbsolutePath>
</PropertyGroup>
<ItemGroup Condition="'$(_ResizetizerIsTizenApp)' == 'True' And '@(_ResizetizerCollectedImages)' != ''">
<TizenTpkUserIncludeFiles Include="$(ResizetizerIntermediateOutputAbsolutePath)res\res.xml" TizenTpkSubDir="res\" />
<FileWrites Include="$(ResizetizerIntermediateOutputAbsolutePath)res\res.xml)" />

<TizenTpkUserIncludeFiles Include="@(_ResizetizerCollectedImages)">
<TizenTpkSubDir>$([MSBuild]::MakeRelative($(ResizetizerIntermediateOutputAbsolutePath), $([System.IO.Path]::GetFullPath('%(_ResizetizerCollectedImages.RelativeDir)'))))</TizenTpkSubDir>
</TizenTpkUserIncludeFiles>
<FileWrites Include="@(_ResizetizerCollectedImages)" />
</ItemGroup>

<!-- Touch/create our stamp file for outputs -->
<Touch Files="$(_ResizetizerStampFile)" AlwaysCreate="True" />

Expand Down Expand Up @@ -602,4 +665,4 @@
<RemoveDir Directories="$(_ResizetizerIntermediateOutputRoot)" Condition="Exists ('$(_ResizetizerIntermediateOutputRoot)' )" />
</Target>

</Project>
</Project>
6 changes: 6 additions & 0 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,12 @@
<_MauiTargetPlatformIsmacOS Condition="'$(_MauiTargetPlatformIdentifier)' == 'macos'">True</_MauiTargetPlatformIsmacOS>
<_MauiTargetPlatformIstvOS Condition="'$(_MauiTargetPlatformIdentifier)' == 'tvos'">True</_MauiTargetPlatformIstvOS>
<_MauiTargetPlatformIsWindows Condition="$(_MauiTargetPlatformIdentifier.Contains('windows')) == 'True'">True</_MauiTargetPlatformIsWindows>
<_MauiTargetPlatformIsTizen Condition="'$(_MauiTargetPlatformIdentifier)' == 'tizen'">True</_MauiTargetPlatformIsTizen>

<IncludeWindowsTargetFrameworks Condition="($([MSBuild]::IsOSPlatform('windows')) and '$(MSBuildRuntimeType)' == 'Full') or ('$(Packing)' == 'true')">true</IncludeWindowsTargetFrameworks>
<IncludeTizenTargetFrameworks Condition="'$(CI)' == 'true' or '$(TF_BUILD)' == 'true' or
Exists('$(DOTNET_ROOT)\sdk-manifests\$(DotNetVersionBand)\samsung.net.sdk.tizen\WorkloadManifest.json') or
Exists('$(ProgramFiles)\dotnet\sdk-manifests\$(DotNetVersionBand)\samsung.net.sdk.tizen\WorkloadManifest.json')">true</IncludeTizenTargetFrameworks>
</PropertyGroup>

<PropertyGroup>
Expand All @@ -34,13 +38,15 @@
<AndroidTargetFrameworkVersion>30.0</AndroidTargetFrameworkVersion>
<WindowsTargetFrameworkVersion>10.0.19041</WindowsTargetFrameworkVersion>
<Windows2TargetFrameworkVersion>10.0.20348</Windows2TargetFrameworkVersion>
<TizenTargetFrameworkVersion>6.5</TizenTargetFrameworkVersion>
</PropertyGroup>

<PropertyGroup>
<!-- the real TFMs -->
<MauiPlatforms>net$(_MauiDotNetVersion)-ios;net$(_MauiDotNetVersion)-maccatalyst;net$(_MauiDotNetVersion)-android</MauiPlatforms>
<WindowsMauiPlatforms Condition="'$(WindowsMauiPlatforms)' == ''">net$(_MauiDotNetVersion)-windows$(WindowsTargetFrameworkVersion);net$(_MauiDotNetVersion)-windows$(Windows2TargetFrameworkVersion)</WindowsMauiPlatforms>
<MauiPlatforms Condition="'$(IncludeWindowsTargetFrameworks)' == 'true'">$(MauiPlatforms);$(WindowsMauiPlatforms)</MauiPlatforms>
<MauiPlatforms Condition="'$(IncludeTizenTargetFrameworks)' == 'true'">$(MauiPlatforms);net$(_MauiDotNetVersion)-tizen</MauiPlatforms>

<!-- Work around the IDE not properly handling the NU1703 warning -->
<MauiPlatformsNoMacCat>net$(_MauiDotNetVersion)-ios;net$(_MauiDotNetVersion)-android</MauiPlatformsNoMacCat>
Expand Down
4 changes: 4 additions & 0 deletions Directory.Build.targets
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@
<SupportedOSPlatformVersion>21.0</SupportedOSPlatformVersion>
<TargetPlatformMinVersion>21.0</TargetPlatformMinVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(_MauiTargetPlatformIsTizen)' == 'True'">
<SupportedOSPlatformVersion>6.5</SupportedOSPlatformVersion>
<TargetPlatformMinVersion>6.5</TargetPlatformMinVersion>
</PropertyGroup>

<!--
NOTE: The Contains('-windows10') is a bit of a hack
Expand Down
4 changes: 4 additions & 0 deletions eng/Microsoft.Extensions.targets
Original file line number Diff line number Diff line change
Expand Up @@ -109,5 +109,9 @@
Update="Microsoft.CodeAnalysis.PublicApiAnalyzers"
Version="$(MicrosoftCodeAnalysisPublicApiAnalyzersVersion)"
/>
<PackageReference
Update="Tizen.UIExtensions.ElmSharp"
Version="$(TizenUIExtensionsVersion)"
/>
</ItemGroup>
</Project>
3 changes: 3 additions & 0 deletions eng/Versions.props
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
<MicrosoftMacCatalystSdkPackageVersion>15.4.200-rc.2.159</MicrosoftMacCatalystSdkPackageVersion>
<MicrosoftmacOSSdkPackageVersion>12.3.200-rc.2.159</MicrosoftmacOSSdkPackageVersion>
<MicrosofttvOSSdkPackageVersion>15.4.200-rc.2.159</MicrosofttvOSSdkPackageVersion>
<SamsungTizenSdkPackageVersion>7.0.100-preview.13.30</SamsungTizenSdkPackageVersion>
<!-- emsdk -->
<MicrosoftNETWorkloadEmscriptenManifest60300PackageVersion>6.0.4</MicrosoftNETWorkloadEmscriptenManifest60300PackageVersion>
<MicrosoftNETWorkloadEmscriptenPackageVersion>$(MicrosoftNETWorkloadEmscriptenManifest60300PackageVersion)</MicrosoftNETWorkloadEmscriptenPackageVersion>
Expand Down Expand Up @@ -49,6 +50,7 @@
<MicrosoftDotNetXHarnessTestRunnersCommonVersion>1.0.0-prerelease.22211.4</MicrosoftDotNetXHarnessTestRunnersCommonVersion>
<MicrosoftDotNetXHarnessTestRunnersXunitVersion>1.0.0-prerelease.22211.4</MicrosoftDotNetXHarnessTestRunnersXunitVersion>
<MicrosoftDotNetXHarnessCLIVersion>1.0.0-prerelease.22211.4</MicrosoftDotNetXHarnessCLIVersion>
<TizenUIExtensionsVersion>0.6.0-pre1</TizenUIExtensionsVersion>
</PropertyGroup>
<PropertyGroup>
<!-- Match the first three version numbers and append 00 -->
Expand All @@ -60,5 +62,6 @@
<DotNetEmscriptenManifestVersionBand>$(DotNetVersionBand)</DotNetEmscriptenManifestVersionBand>
<DotNetAndroidManifestVersionBand>$(DotNetVersionBand)</DotNetAndroidManifestVersionBand>
<DotNetMaciOSManifestVersionBand>$(DotNetVersionBand)</DotNetMaciOSManifestVersionBand>
<DotNetTizenManifestVersionBand>$(DotNetVersionBand)</DotNetTizenManifestVersionBand>
</PropertyGroup>
</Project>
8 changes: 8 additions & 0 deletions eng/pipelines/common/provision.yml
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,14 @@ steps:
displayName: 'Setup MSBuild Paths'
condition: eq(variables['provisioningVS'], 'true')
- pwsh: |
[xml] $fileXml = Get-Content "eng\Versions.props"
$DotNetVersionBand = $fileXml.SelectSingleNode("Project/PropertyGroup/DotNetVersionBand").InnerText
echo "Installing .NET $DotNetVersion"
Invoke-WebRequest 'https://raw.githubusercontent.com/Samsung/Tizen.NET/main/workload/scripts/workload-install.ps1' -OutFile 'workload-install.ps1'
.\workload-install.ps1 -t $DotNetVersion
displayName: 'Install Tizen'
# Prepare Both
- pwsh: ./build.ps1 --target provision
displayName: 'Cake Provision'
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#nullable enable
Loading

0 comments on commit 438aef2

Please sign in to comment.