loading certificates in a separate task
authorYurii Zinchuk/Tizen Services & IoT (PLT) /SRPOL/Engineer/Samsung Electronics <y.zinchuk@samsung.com>
Thu, 16 Nov 2023 13:05:08 +0000 (14:05 +0100)
committerYurii Zinchuk/Tizen Services & IoT (PLT) /SRPOL/Engineer/Samsung Electronics <y.zinchuk@samsung.com>
Tue, 21 Nov 2023 12:40:25 +0000 (13:40 +0100)
SettingMainGadget/SettingMainGadget/About/AboutRootCertificatesGadget.cs

index 92c07642d1284af2706b86ec1596ddca6387adc0..8215ad6a8db60e9bced14f55a5ee32d7471ad90b 100644 (file)
@@ -4,6 +4,8 @@ using SettingMainGadget;
 using SettingMainGadget.About;
 using SettingMainGadget.TextResources;
 using System.Collections.Generic;
+using System.Threading.Tasks;
+using Tizen.Applications;
 using Tizen.NUI;
 using Tizen.NUI.BaseComponents;
 using Tizen.NUI.Components;
@@ -35,28 +37,39 @@ namespace Setting.Menu.About
                 },
             };
 
-            rootCert = SettingCertificateManager.GetRootCertList();
-
-            CreateItems();
+            CreateView();
 
             return content;
         }
 
-        private void CreateItems()
+        private async void CreateView()
         {
             content.RemoveAllChildren(true);
 
+            rootCert = SettingCertificateManager.GetRootCertList();
             foreach (var certificate in rootCert)
             {
-                var status = certificate.status == CertStatus.DISABLED ? NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BODY_OFF)) : NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BODY_ON));
-                var item = TextListItem.CreatePrimaryTextItemWithSecondaryText(certificate.title, status);
-                item.Clicked += (s, e) =>
-                {
-                    SettingCertificateManager.CertificateMetadata = certificate;
-                    NavigateTo(MainMenuProvider.About_CertificateDetails);
-                };
-                content.Add(item);
+                await CreateItem(certificate);
             }
         }
+
+        private Task CreateItem(certificateMetadata certificate)
+        {
+            return Task.Run(async () =>
+            {
+                await CoreApplication.Post(() =>
+                {
+                    var status = certificate.status == CertStatus.DISABLED ? NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BODY_OFF)) : NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BODY_ON));
+                    var item = TextListItem.CreatePrimaryTextItemWithSecondaryText(certificate.title, status);
+                    item.Clicked += (s, e) =>
+                    {
+                        SettingCertificateManager.CertificateMetadata = certificate;
+                        NavigateTo(MainMenuProvider.About_CertificateDetails);
+                    };
+                    content.Add(item);
+                    return true;
+                });
+            });
+        }
     }
 }