Add preloading features
authorJoonghyunCho <chojoong@gmail.com>
Tue, 21 Jan 2020 06:51:44 +0000 (15:51 +0900)
committer조웅석/Common Platform Lab(SR)/Principal Engineer/삼성전자 <ws77.cho@samsung.com>
Tue, 4 Feb 2020 00:10:01 +0000 (09:10 +0900)
Managed/Tizen.Init/Tizen.Init.cs

index eb6c817..b523677 100644 (file)
@@ -155,7 +155,7 @@ namespace Tizen.Init {
             }
 
             PreloadLibICU();
-            PreloadElmSharp();
+            PreloadTizenFX();
 
             PreloadEnd();
         }
@@ -199,6 +199,13 @@ namespace Tizen.Init {
             }
         }
 
+        static void PreloadTizenFX()\r
+        {\r
+            PreloadElmSharp();
+            PreloadSystemInfo();
+            PreloadTizenSynchronizationContext();\r
+        }
+
         static void PreloadElmSharp()\r
         {\r
             try
@@ -213,5 +220,36 @@ namespace Tizen.Init {
                 Console.WriteLine("Fail to preload ElmSharp");
             }
         }
+
+        static void PreloadSystemInfo()\r
+        {\r
+            try
+            {
+                Assembly assem = LoadAssembly("Tizen.System.Information");
+                var type = assem.GetType("Tizen.System.Information");
+                type.GetMethod("TryGetValue", BindingFlags.Static | BindingFlags.Public).MakeGenericMethod(typeof(int)).Invoke(null, new object[]{ "http://tizen.org/feature/screen.width", null});
+            }
+            catch (Exception e)
+            {
+                Console.WriteLine(e.ToString());
+                Console.WriteLine("Fail to preload system information");
+            }\r
+        }
+
+        static void PreloadTizenSynchronizationContext()\r
+        {\r
+            try
+            {\r
+                Assembly assem = LoadAssembly("Tizen.Applications.Common");\r
+                var type = assem.GetType("Tizen.Applications.TizenSynchronizationContext");\r
+                type = type.GetNestedType("GSourceManager", BindingFlags.Static | BindingFlags.NonPublic);\r
+                type.GetMethod("Post", BindingFlags.Static | BindingFlags.Public).Invoke(null, new object[] { null });
+            }\r
+            catch (Exception e)\r
+            {
+                Console.WriteLine(e.ToString());
+                Console.WriteLine("Fail to preload TizenSynchronizationContext");\r
+            }\r
+        }
     }
 }