added loading component
authorYurii Zinchuk/Tizen Services & IoT (PLT) /SRPOL/Engineer/Samsung Electronics <y.zinchuk@samsung.com>
Thu, 16 Nov 2023 13:09:45 +0000 (14:09 +0100)
committerYurii Zinchuk/Tizen Services & IoT (PLT) /SRPOL/Engineer/Samsung Electronics <y.zinchuk@samsung.com>
Tue, 21 Nov 2023 12:40:44 +0000 (13:40 +0100)
SettingMainGadget/SettingMainGadget/About/AboutLegalInfoGadget.cs

index 1f2d778417cfba6de7f5d8fa04cf6ae73fbb7d2c..a384e8a3d1b35efea5443cceb776ae320e59caf6 100644 (file)
@@ -1,5 +1,7 @@
-using SettingMainGadget.TextResources;
+using SettingMainGadget.TextResources;
+using Tizen.NUI;
 using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
 
 namespace Setting.Menu
 {
@@ -8,13 +10,61 @@ namespace Setting.Menu
         const string LegalinfoURL = "file:///usr/share/license.html";
         public override string ProvideTitle() => NUIGadgetResourceManager.GetString(nameof(Resources.IDS_ST_BODY_OPEN_SOURCE_LICENCES));
 
+        private View content;
+        private WebView view;
+        private Loading webViewLoadingIndicator;
+
         protected override View OnCreate()
         {
             base.OnCreate();
-            WebView view = new WebView();
+
+            content = new View()
+            {
+                WidthSpecification = LayoutParamPolicies.MatchParent,
+                HeightSpecification = LayoutParamPolicies.MatchParent,
+                Layout = new LinearLayout()
+                {
+                    LinearOrientation = LinearLayout.Orientation.Vertical,
+                    VerticalAlignment = VerticalAlignment.Center,
+                    HorizontalAlignment = HorizontalAlignment.Center,
+                },
+            };
+
+            OnPageAppeared += CreateView;
+
+            return content;
+        }
+
+        private void CreateView()
+        {
+            webViewLoadingIndicator = new Loading();
+            webViewLoadingIndicator.Play();
+            content.Add(webViewLoadingIndicator);
+
+            view = new WebView()
+            {
+                WidthSpecification = LayoutParamPolicies.MatchParent,
+                HeightSpecification = LayoutParamPolicies.MatchParent,
+            };
+            view.PageLoadFinished += View_PageLoadFinished;
             view.LoadUrl(LegalinfoURL);
+        }
+
+        private void View_PageLoadFinished(object sender, Tizen.NUI.WebViewPageLoadEventArgs e)
+        {
+            content.Add(view);
+            webViewLoadingIndicator?.Stop();
+            webViewLoadingIndicator?.Unparent();
+            webViewLoadingIndicator?.Dispose();
+            view.PageLoadFinished -= View_PageLoadFinished;
+        }
+
+        protected override void OnDestroy()
+        {
+            view?.Unparent();
+            view?.Dispose();
 
-            return view;
+            base.OnDestroy();
         }
     }
 }