load main menus from gadgets in separate task
authorMarcin Romaniuk <m.romaniuk@samsung.com>
Fri, 13 Oct 2023 21:26:00 +0000 (23:26 +0200)
committerPiotr Czaja/Tizen Services & IoT (PLT) /SRPOL/Engineer/Samsung Electronics <p.czaja@samsung.com>
Thu, 26 Oct 2023 07:33:54 +0000 (09:33 +0200)
SettingView/SettingView.cs

index 6b09583c5c3c172b83bf91e5333981966767a521..2c86f9600f2eadc67d8af7ef165855a37071c25a 100644 (file)
@@ -240,23 +240,32 @@ namespace SettingView
                 },
             };
 
-            foreach (var gadgetInfo in visibleMenus)
-            {
-                Logger.Debug($"{gadgetInfo}");
-
-                var info = MainMenuInfo.Create(gadgetInfo);
-                if (info != null)
-                {
-                    var row = new SettingCore.Views.MainMenuItem(info.IconPath, info.IconColor, info.Title);
-                    row.Clicked += (s, e) => { info.Action?.Invoke(); };
-
-                    content.Add(row);
-                }
-            }
+            CreateContentRows(visibleMenus, content);
 
             return content;
         }
 
+        private static System.Threading.Tasks.Task CreateContentRows(IEnumerable<SettingGadgetInfo> visibleMenus, View content)
+        {
+            return System.Threading.Tasks.Task.Run(() =>
+            {
+                Post(() =>
+                {
+                    foreach (var gadgetInfo in visibleMenus)
+                    {
+                        var info = MainMenuInfo.Create(gadgetInfo);
+                        if (info != null)
+                        {
+                            var row = new SettingCore.Views.MainMenuItem(info.IconPath, info.IconColor, info.Title);
+                            row.Clicked += (s, e) => { info.Action?.Invoke(); };
+
+                            content.Add(row);
+                        }
+                    }
+                });
+            });
+        }
+
         private static View GetTextNotice(string text, Color color)
         {
             return new TextLabel