Update InfoPage: disable edit box pop up for un-editable fields 93/287193/1
authorAkash Kumar <akash1.kumar@samsung.com>
Tue, 24 Jan 2023 11:29:05 +0000 (16:59 +0530)
committerAkash Kumar <akash1.kumar@samsung.com>
Tue, 24 Jan 2023 11:29:05 +0000 (16:59 +0530)
Change-Id: I5c8f79ee4504e10615432ae91b3e15e85b055f07
Signed-off-by: Akash Kumar <akash1.kumar@samsung.com>
SettingWiFi/SettingWiFi/view/ApInfoSource.cs
SettingWiFi/SettingWiFi/view/InfoInputPage.cs
SettingWiFi/SettingWiFi/view/InfoPage.cs
packaging/org.tizen.cssetting-wifi-1.0.0.tpk

index 8ce95affae34806d132fa6cb0fdd8d102f6fa855..755aae2a66fb583c8fd97e20a3179a7330c1dfdd 100644 (file)
@@ -52,6 +52,7 @@ namespace SettingWiFi
 
         private void ShowStaticInfo(bool isConfigChanged)
         {
+            /*
             if (isConfigChanged)
             {
                 mAp.IPv4 = "";
@@ -62,6 +63,7 @@ namespace SettingWiFi
                 mAp.ProxyAddress = "";
                 mAp.ProxyPort = 0;
             }
+            */
 
             Add(new ApInfoText(Resources.IDS_WIFI_BODY_IP_ADDRESS, mAp.IPv4, UpdateIPAddress));
             Add(new ApInfoText(Resources.IDS_WIFI_BODY_SUBNET_MASK, mAp.SubnetMask, UpdateSubnetMask));
@@ -169,4 +171,4 @@ namespace SettingWiFi
             }
         }
     }
-}
\ No newline at end of file
+}
index 285613687f90c1d7c6d7851a6c503a7b770c5c30..89168a3bb6be5eac565c8d281f1e7887833efca2 100644 (file)
@@ -10,13 +10,24 @@ namespace SettingWiFi
 {
     internal class InfoInputPage : DialogPage
     {
-        internal InfoInputPage()
+        private AP mAp;
+        ApInfoSource mApInfoSource;
+
+        private TextField mValueField;
+        private string mTitle;
+        private bool mIsStaticIpConfig;
+
+        internal InfoInputPage(AP ap, ApInfoSource apInfoSource, bool isStaticIpConfig)
         {
             Debug("InfoInputPage");
+            mAp = ap;
+            mApInfoSource = apInfoSource;
+            mIsStaticIpConfig = isStaticIpConfig;
         }
 
         internal void CreateComponents(string title, string value)
         {
+            mTitle = title;
             var infoView = new RecyclerViewItem()
             {
                 Layout = new LinearLayout()
@@ -27,12 +38,12 @@ namespace SettingWiFi
                 HeightSpecification = LayoutParamPolicies.WrapContent,
             };
 
-            var valueField = new TextField()
+            var mValueField = new TextField()
             {
                 WidthSpecification = 600,
                 PlaceholderText = value,
             };
-            infoView.Add(valueField);
+            infoView.Add(mValueField);
 
             var cancelButton = new Button()
             {
@@ -55,7 +66,10 @@ namespace SettingWiFi
 
         private void OnOkClicked(object sender, ClickedEventArgs e)
         {
-            Debug("OnOkClicked");
+            Debug("OnOkClicked " + mValueField.Text + " : " + mTitle);
+            UpdateInfo(mTitle, mValueField.Text);
+            mApInfoSource.Clear();
+            mApInfoSource.ShowInfo(mIsStaticIpConfig, true);
             Navigator.Pop();
         }
 
@@ -64,5 +78,50 @@ namespace SettingWiFi
             Debug("OnCancelClicked");
             Navigator.Pop();
         }
+
+        private void UpdateInfo(string fieldName, string value)
+        {
+            Debug("UpdateInfo");
+
+            if (fieldName == Resources.IDS_WIFI_BODY_IP_ADDRESS)
+            {
+                mAp.IPv4 = value;
+            }
+            else if (fieldName == Resources.IDS_WIFI_BODY_SUBNET_MASK)
+            {
+                mAp.SubnetMask = value;
+            }
+            else if (fieldName == Resources.IDS_WIFI_BODY_GATEWAY_ADDRESS)
+            {
+                mAp.GatewayAddress = value;
+            }
+            else if (fieldName == Resources.IDS_WIFI_BODY_DNS_1)
+            {
+                mAp.Dns1 = value;
+            }
+            else if (fieldName == Resources.IDS_WIFI_BODY_DNS_2)
+            {
+                mAp.Dns2 = value;
+            }
+            else if (fieldName == Resources.IDS_ST_SBODY_PROXY_ADDRESS)
+            {
+                mAp.ProxyAddress = value;
+            }
+            else if (fieldName == Resources.IDS_ST_SBODY_PROXY_PORT)
+            {
+                try
+                {
+                    mAp.ProxyPort = int.Parse(value);
+                }
+                catch (Exception e)
+                {
+                    Error("Exception occured while parsing port number " + e.Message);
+                }
+            }
+            else
+            {
+                Debug("Invalid field name");
+            }
+        }
     }
-}
\ No newline at end of file
+}
index 608b20e54bfd5f2402cf896c7a05dff7c0ee30a3..a1eaa0c9d6ea8e923d12c39eb1c4b4520710254f 100644 (file)
@@ -100,13 +100,43 @@ namespace SettingWiFi
             else
             {
                 Debug("Ok info");
-                Navigator.Push(CreateInfoInputPage(info.InfoTitle, info.InfoValue));
+                if(IsFieldEditable(info.InfoTitle))
+                {
+                    Navigator.Push(CreateInfoInputPage(info.InfoTitle, info.InfoValue));
+                }
+            }
+        }
+
+        private bool IsFieldEditable(string fieldName)
+        {
+            // Checks if particular field on info page is editable or not.
+            if (fieldName == Resources.IDS_WIFI_BODY_MAC_ADDRESS)
+            {
+                return false;
+            }
+            else
+            {
+                if (mOnOffSwitch.IsSelected)
+                {
+                    return true;
+                }
+                else
+                {
+                    if(fieldName == Resources.IDS_ST_SBODY_PROXY_ADDRESS || fieldName == Resources.IDS_ST_SBODY_PROXY_PORT)
+                    {
+                        return true;
+                    }
+                    else
+                    {
+                        return false;
+                    }
+                }
             }
         }
 
         private Page CreateInfoInputPage(string title, string value)
         {
-            var page = new InfoInputPage();
+            var page = new InfoInputPage(mAp, mApInfoSource, mOnOffSwitch.IsSelected);
             page.CreateComponents(title, value);
             return page;
         }
index df5bda3b9d0a3f5664d7c6b1cab74c45c209b9cd..52b40addd9857570b2fda8be95c375dee121c303 100644 (file)
Binary files a/packaging/org.tizen.cssetting-wifi-1.0.0.tpk and b/packaging/org.tizen.cssetting-wifi-1.0.0.tpk differ