add root certificates gadget
authorYurii Zinchuk/Tizen Services & IoT (PLT) /SRPOL/Engineer/Samsung Electronics <y.zinchuk@samsung.com>
Fri, 2 Jun 2023 08:21:34 +0000 (10:21 +0200)
committerYurii Zinchuk/Tizen Services & IoT (PLT) /SRPOL/Engineer/Samsung Electronics <y.zinchuk@samsung.com>
Wed, 12 Jul 2023 07:37:46 +0000 (09:37 +0200)
SettingMainGadget/SettingMainGadget/About/AboutManageCertificatesGadget.cs
SettingMainGadget/SettingMainGadget/About/AboutRootCertificatesGadget.cs [new file with mode: 0644]
SettingMainGadget/SettingMainGadget/MainMenuProvider.cs

index eb505268e1bc57accf8219452dab868a5da58338..07da160da0fe4da97df853f2221bdb5b0ad8f350 100644 (file)
@@ -41,6 +41,7 @@ namespace Setting.Menu.About
             var rootCertItem = TextListItem.CreatePrimaryTextItem(NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BODY_TRUSTED_ROOT_CA_CERTIFICATES_ABB)));
             rootCertItem.Clicked += (o, e) =>
             {
+                NavigateTo(MainMenuProvider.About_RootCertificates);
             };
             content.Add(rootCertItem);
 
diff --git a/SettingMainGadget/SettingMainGadget/About/AboutRootCertificatesGadget.cs b/SettingMainGadget/SettingMainGadget/About/AboutRootCertificatesGadget.cs
new file mode 100644 (file)
index 0000000..2d4b8ea
--- /dev/null
@@ -0,0 +1,60 @@
+using SettingCore;
+using SettingCore.Views;
+using SettingMainGadget;
+using SettingMainGadget.About;
+using SettingMainGadget.TextResources;
+using System.Collections.Generic;
+using Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+using static Interop.CertSvc;
+
+namespace Setting.Menu.About
+{
+    public class AboutRootCertificatesGadget : MenuGadget
+    {
+        public override string ProvideTitle() => NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BODY_TRUSTED_ROOT_CA_CERTIFICATES_ABB));
+
+        private ScrollableBase content;
+
+        private List<certificateMetadata> rootCert = new List<certificateMetadata>();
+
+        protected override View OnCreate()
+        {
+            base.OnCreate();
+
+            content = new ScrollableBase()
+            {
+                WidthSpecification = LayoutParamPolicies.MatchParent,
+                HeightSpecification = LayoutParamPolicies.MatchParent,
+                ScrollingDirection = ScrollableBase.Direction.Vertical,
+                HideScrollbar = false,
+                Layout = new LinearLayout()
+                {
+                    LinearOrientation = LinearLayout.Orientation.Vertical,
+                },
+            };
+
+            rootCert = SettingCertificateManager.GetRootCertList();
+
+            CreateItems();
+
+            return content;
+        }
+
+        private void CreateItems()
+        {
+            content.RemoveAllChildren(true);
+
+            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) =>
+                {
+                };
+                content.Add(item);
+            }
+        }
+    }
+}
index 1dc22411bef8b370142d99a6913b31ef5aab474d..bf02918b13eca8361ad721cc0e58e746c28e78bd 100644 (file)
@@ -31,6 +31,7 @@ namespace SettingMainGadget
         public static string Language_BodySpeech = "Language.BodySpeech";
         public static string About = "About";
         public static string About_ManageCertificates = "About.ManageCertificates";
+        public static string About_RootCertificates = "About.RootCertificates";
         public static string About_OpenSourceLicenses = "About.OpenSourceLicenses";
         public static string About_ScalableUI = "About.ScalableUI";
         public static string About_DeviceInfo = "About.DeviceInfo";
@@ -107,6 +108,7 @@ namespace SettingMainGadget
                 new SettingMenu(path: Language_STT, defaultOrder: 69),
                 new SettingMenu(path: About, defaultOrder: 70, type: typeof(Setting.Menu.AboutGadget)),
                 new SettingMenu(path: About_ManageCertificates, defaultOrder: 10, type: typeof(Setting.Menu.About.AboutManageCertificatesGadget)),
+                new SettingMenu(path: About_RootCertificates, defaultOrder: 15, type: typeof(Setting.Menu.About.AboutRootCertificatesGadget)),
                 new SettingMenu(path: About_OpenSourceLicenses, defaultOrder: 20, type: typeof(Setting.Menu.AboutLegalInfoGadget)),
                 new SettingMenu(path: About_ScalableUI, defaultOrder: -30, type: typeof(SettingMainGadget.About.AboutScalableGadget)),
                 new SettingMenu(path: About_DeviceInfo, defaultOrder: 40),