Consider TV profile as TargetIdiom
authorKangho Hur <kangho.hur@samsung.com>
Fri, 20 Jan 2017 05:05:56 +0000 (14:05 +0900)
committerKangho Hur <kangho.hur@samsung.com>
Mon, 24 Apr 2017 04:36:51 +0000 (13:36 +0900)
- 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

Xamarin.Forms.Platform.Tizen/Forms.cs
Xamarin.Forms.Platform.Tizen/TizenPlatformServices.cs
packaging/xamarin-forms-tizen.spec

index a12d951..5191425 100644 (file)
@@ -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;
                }
index bb7183a..3fa4e75 100644 (file)
@@ -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();
                        }
index 97b77df..d197860 100644 (file)
@@ -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