From: Kangho Hur Date: Fri, 20 Jan 2017 05:05:56 +0000 (+0900) Subject: Consider TV profile as TargetIdiom X-Git-Tag: submit/tizen/20170424.094440~81 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=088af2334ebfd716e3f4ade55d1a29f15a2f61f7;p=platform%2Fupstream%2Fxamarin-forms.git Consider TV profile as TargetIdiom - Currently, We assumed TV as TargetIdiom.Desktop. This is because there is no TargetIdiom.TV in Xamarin.Forms mainstream. - I'll do a PR to adding TargetIdiom.TV. Also, I'll fix it correctly when TargetIdio.TV is merged. Change-Id: Idb7b1cd2510f9d4cecb70bd1e9d4dae1c2a61b05 --- diff --git a/Xamarin.Forms.Platform.Tizen/Forms.cs b/Xamarin.Forms.Platform.Tizen/Forms.cs index a12d951..5191425 100644 --- a/Xamarin.Forms.Platform.Tizen/Forms.cs +++ b/Xamarin.Forms.Platform.Tizen/Forms.cs @@ -25,6 +25,8 @@ namespace Xamarin.Forms.Platform.Tizen readonly double scalingFactor; + readonly string profile; + public override Size PixelScreenSize { get @@ -49,6 +51,14 @@ namespace Xamarin.Forms.Platform.Tizen } } + public string Profile + { + get + { + return this.profile; + } + } + public TizenDeviceInfo(FormsApplication formsApplication) { int width = 0; @@ -60,6 +70,9 @@ namespace Xamarin.Forms.Platform.Tizen scalingFactor = 1.0; // scaling is disabled, we're using pixels as Xamarin's geometry units pixelScreenSize = new Size(width, height); scaledScreenSize = new Size(width / scalingFactor, height / scalingFactor); + + //TODO : Fix me if elm_config_profile_get() unavailable + profile = Elementary.GetProfile(); } } @@ -165,8 +178,21 @@ namespace Xamarin.Forms.Platform.Tizen }); } - // FIXME: We should consider TV and Common (Desktop) profiles also. - Device.Idiom = TargetIdiom.Phone; + // TODO: We should consider various tizen profiles such as TV, Wearable and so on. + string profile = ((TizenDeviceInfo)Device.Info).Profile; + if (profile == "mobile") + { + Device.Idiom = TargetIdiom.Phone; + } + else if (profile == "tv" || profile == "desktop") + { + Device.Idiom = TargetIdiom.Desktop; + } + else + { + Device.Idiom = TargetIdiom.Unsupported; + } + ExpressionSearch.Default = new TizenExpressionSearch(); IsInitialized = true; } diff --git a/Xamarin.Forms.Platform.Tizen/TizenPlatformServices.cs b/Xamarin.Forms.Platform.Tizen/TizenPlatformServices.cs index bb7183a..3fa4e75 100644 --- a/Xamarin.Forms.Platform.Tizen/TizenPlatformServices.cs +++ b/Xamarin.Forms.Platform.Tizen/TizenPlatformServices.cs @@ -79,17 +79,29 @@ namespace Xamarin.Forms.Platform.Tizen public double GetNamedSize(NamedSize size, Type targetElementType, bool useOldSizes) { + double baseSize = 10; + double baseSizeSpan = 2; + + // TODO: Fix me when TargetIdiom.TV avaialbe on mainline + // In case of TV profile The base named size sholud be lager than mobile profile + if (Device.Idiom == TargetIdiom.Desktop) + { + // TODO: These valuse should be updated when TV profile UX guideline released. + baseSize = 60; + baseSizeSpan = 5; + } + switch (size) { case NamedSize.Micro: - return 10; + return baseSize; case NamedSize.Small: - return 12; + return baseSize + baseSizeSpan; case NamedSize.Default: case NamedSize.Medium: - return 14; + return baseSize + (baseSizeSpan * 2); case NamedSize.Large: - return 18; + return baseSize + (baseSizeSpan * 4); default: throw new ArgumentOutOfRangeException(); } diff --git a/packaging/xamarin-forms-tizen.spec b/packaging/xamarin-forms-tizen.spec index 97b77df..d197860 100644 --- a/packaging/xamarin-forms-tizen.spec +++ b/packaging/xamarin-forms-tizen.spec @@ -1,7 +1,7 @@ %define XF_VERSION 2.3.3.175 # Increase this XF_TIZEN_VERSION when any public APIs of Xamarin.Forms.Platform.Tizen are changed. -%define XF_TIZEN_VERSION beta-004 +%define XF_TIZEN_VERSION beta-005 Name: xamarin-forms-tizen Summary: Xamarin.Forms for Tizen platform