Introduce Unit metric
authorLukasz Stanislawski <l.stanislaws@samsung.com>
Mon, 19 Oct 2020 10:33:23 +0000 (12:33 +0200)
committerPiotr Czaja <p.czaja@samsung.com>
Tue, 14 Sep 2021 11:01:34 +0000 (13:01 +0200)
According to new guideline rules all elements will be described
in units instead of pixels. Provide utilities for easier conversion
between units and pixes.

Fitness/Config.cs
Fitness/UnitSize.cs [new file with mode: 0644]
Fitness/Views/UnitsUtils.cs [new file with mode: 0644]

index 37233c6..bfe7f77 100644 (file)
@@ -9,5 +9,10 @@ namespace Fitness
         /// Log tag used to identify application-specific events in the logging utility tool.
         /// </summary>
         public const string LogTag = "FitnessApp";
+
+        /// <summary>
+        /// Unit Size for current screen
+        /// </summary>
+        public const UnitSize Unit = UnitSize.MediumUnit;
     }
 }
diff --git a/Fitness/UnitSize.cs b/Fitness/UnitSize.cs
new file mode 100644 (file)
index 0000000..4236315
--- /dev/null
@@ -0,0 +1,34 @@
+namespace Fitness
+{
+    /// <summary>
+    /// UnitSize is used to convert size descibe in abstract metric - called
+    /// unit - into pixels.
+    /// </summary>
+    public enum UnitSize
+    {
+        /// <summary>
+        /// Number of pixels per unit for very large size displays with very small dpi.
+        /// </summary>
+        ExtraSmallUnit = 1,
+
+        /// <summary>
+        /// Number of pixels per unit for large size displays with small dpi.
+        /// </summary>
+        SmallUnit = 2,
+
+        /// <summary>
+        /// Number of pixels per unit for average size displays with average dpi.
+        /// </summary>
+        MediumUnit = 4,
+
+        /// <summary>
+        /// Number of pixels per unit for small size displays with high dpi.
+        /// </summary>
+        LargeUnit = 6,
+
+        /// <summary>
+        /// Number of pixels per unit for very small size displays with very high dpi.
+        /// </summary>
+        ExtraLargUnit = 8,
+    }
+}
diff --git a/Fitness/Views/UnitsUtils.cs b/Fitness/Views/UnitsUtils.cs
new file mode 100644 (file)
index 0000000..9a8cf87
--- /dev/null
@@ -0,0 +1,12 @@
+using Fitness;
+
+namespace Fitness.Views
+{
+    public static class UnitsUtils
+    {
+        public static int UnitsToPixels(int units)
+        {
+            return units * (int)Config.Unit;
+        }
+    }
+}