Implement "Show Password" and "Clear Password" functionality 01/298701/3 accepted/tizen/unified/20230920.161437
authorAkash Kumar <akash1.kumar@samsung.com>
Tue, 12 Sep 2023 11:22:56 +0000 (16:52 +0530)
committerAkash Kumar <akash1.kumar@samsung.com>
Wed, 13 Sep 2023 11:09:36 +0000 (16:39 +0530)
This Patch:
- Adds eye icon to show hidden password and vice versa.
- Adds cross(x) icon to clear password.
- Updates button and textfield sizes as per figma.
- Adds "Type your password" label as per figma design.
- Updates WPS icon as per Figma
- This resolves following jira issues:
    - https://code.sec.samsung.net/jira/browse/TEIGHT-5160
    - https://code.sec.samsung.net/jira/browse/TEIGHT-5166

Change-Id: I56c564013e2a4038df197460ea271ef79ed42030
Signed-off-by: Akash Kumar <akash1.kumar@samsung.com>
SettingWiFi/SettingWiFi/res/allowed/SettingWiFi/images/cross_icon.png [new file with mode: 0644]
SettingWiFi/SettingWiFi/res/allowed/SettingWiFi/images/eye_icon.png [new file with mode: 0644]
SettingWiFi/SettingWiFi/res/allowed/SettingWiFi/images/wifi_icon_badge_info.png
SettingWiFi/SettingWiFi/res/allowed/SettingWiFi/images/wifi_icon_wps.png
SettingWiFi/SettingWiFi/view/ConnectPage.cs
SettingWiFi/SettingWiFi/view/Resources.cs
packaging/org.tizen.cssetting-wifi-1.1.4.rpk

diff --git a/SettingWiFi/SettingWiFi/res/allowed/SettingWiFi/images/cross_icon.png b/SettingWiFi/SettingWiFi/res/allowed/SettingWiFi/images/cross_icon.png
new file mode 100644 (file)
index 0000000..1813a15
Binary files /dev/null and b/SettingWiFi/SettingWiFi/res/allowed/SettingWiFi/images/cross_icon.png differ
diff --git a/SettingWiFi/SettingWiFi/res/allowed/SettingWiFi/images/eye_icon.png b/SettingWiFi/SettingWiFi/res/allowed/SettingWiFi/images/eye_icon.png
new file mode 100644 (file)
index 0000000..b6e31d8
Binary files /dev/null and b/SettingWiFi/SettingWiFi/res/allowed/SettingWiFi/images/eye_icon.png differ
index 6b2dd79008d4a5c228131d06d34a7c590eca7079..d4b03ebfceed7d8581d7766029b242122fd8a7d4 100644 (file)
Binary files a/SettingWiFi/SettingWiFi/res/allowed/SettingWiFi/images/wifi_icon_badge_info.png and b/SettingWiFi/SettingWiFi/res/allowed/SettingWiFi/images/wifi_icon_badge_info.png differ
index c77f56a057760459af5140351b3dd763a1a4d091..273c38be15b485c662e2a5b7883faeac4075547b 100644 (file)
Binary files a/SettingWiFi/SettingWiFi/res/allowed/SettingWiFi/images/wifi_icon_wps.png and b/SettingWiFi/SettingWiFi/res/allowed/SettingWiFi/images/wifi_icon_wps.png differ
index 5a584dc73190e20a7ba56aab113df88c35bfb88f..8ae231b7c5d7370a286ef86cc599eb82f2d8a4c2 100755 (executable)
@@ -29,8 +29,9 @@ namespace SettingWiFi
             Debug("+");
             var passwordField = new TextField()
             {
-                WidthSpecification = 600,
-                BackgroundColor = Color.Silver,
+                WidthSpecification = 534,
+                HeightSpecification = 48,
+                BackgroundColor = Color.White,
                 PlaceholderText = Resources.IDS_WIFI_HEADER_PASSWORD,
             };
 
@@ -41,12 +42,8 @@ namespace SettingWiFi
             PropertyMap p1 = inputSetting.OutputMap;
             passwordField.InputMethodSettings = p1;
 
-            var hiddenInput = new Tizen.NUI.Text.HiddenInput();
-            hiddenInput.Mode = HiddenInputModeType.ShowLastCharacter;
-            hiddenInput.SubstituteCharacter = '*';
-            hiddenInput.SubstituteCount = 0;
-            hiddenInput.ShowLastCharacterDuration = 1000;
-            passwordField.SetHiddenInput(hiddenInput);
+            mPasswordField = passwordField;
+            UpdateHiddenProperty(true);
 
             return passwordField;
         }
@@ -57,7 +54,7 @@ namespace SettingWiFi
             {
                 Color = new Selector<Color>()
                 {
-                    Normal = new Color("#17234D"),
+                    Normal = new Color("#FFFFFF"),
                     Focused = new Color("#17234D"),
                     Pressed = new Color("#FF6200"),
                     Disabled = new Color("#CACACA"),
@@ -92,13 +89,14 @@ namespace SettingWiFi
                 {
                     LinearOrientation = LinearLayout.Orientation.Vertical,
                 },
-                WidthSpecification = LayoutParamPolicies.MatchParent,
-                HeightSpecification = LayoutParamPolicies.WrapContent,
+                IsSelectable = false,
             };
 
-            mPasswordField = CreatePasswordField();
-            mPasswordField.TextChanged += OnTextChanged;
-            connectView.Add(mPasswordField);
+            TextLabel label = new TextLabel(Resources.IDS_WIFI_BODY_TYPE_PASSWORD);
+            label.Padding = new Extents(5, 5, 5, 20);
+            connectView.Add(label);
+
+            connectView.Add(CreatePasswordEntryItem());
 
             if(mAp.IsWps)
             {
@@ -108,12 +106,16 @@ namespace SettingWiFi
             var cancelButton = new Button()
             {
                 Text = Resources.IDS_WIFI_SK_CANCEL,
+                WidthSpecification = 252,
+                HeightSpecification = 48,
             };
             cancelButton.Clicked += OnCancelClicked;
 
             mConnectButton = new Button()
             {
                 Text = Resources.IDS_WIFI_BODY_CONNECT,
+                WidthSpecification = 252,
+                HeightSpecification = 48,
             };
             mConnectButton.IsEnabled = false;
             mConnectButton.Clicked += OnConnectClicked;
@@ -126,6 +128,124 @@ namespace SettingWiFi
             };
         }
 
+        private void UpdateHiddenProperty(bool hide)
+        {
+            Debug("+");
+            var hiddenInput = new Tizen.NUI.Text.HiddenInput();
+            if (hide)
+            {
+                hiddenInput.Mode = HiddenInputModeType.ShowLastCharacter;
+                hiddenInput.SubstituteCharacter = '*';
+                hiddenInput.SubstituteCount = 0;
+                hiddenInput.ShowLastCharacterDuration = 1000;
+            }
+            else
+            {
+                hiddenInput.Mode = HiddenInputModeType.HideNone;
+            }
+            mPasswordField.SetHiddenInput(hiddenInput);
+            mPasswordField.Text = mPasswordField.Text;
+        }
+
+        private Selector<Color> GetDefaultColorSelector()
+        {
+            return new Selector<Color>()
+            {
+                Normal = new Color("#FFFFFF"),
+                Focused = new Color("#17234D"),
+                Pressed = new Color("#FF6200"),
+                Disabled = new Color("#CACACA"),
+            };
+        }
+
+        private Button CreateButton(string iconImagePath)
+        {
+            int buttonSize = 48;
+
+            ButtonStyle style = new ButtonStyle()
+            {
+                IsSelectable = true,
+                CornerRadius = 50,
+                BackgroundColor = GetDefaultColorSelector(),
+            };
+
+            Button button = new Button(style)
+            {
+                WidthSpecification = buttonSize,
+                HeightSpecification = buttonSize,
+                IconURL = Resources.GetPath() + iconImagePath,
+                IsSelectable = false,
+            };
+
+            return button;
+        }
+
+        private Button GetCrossButton()
+        {
+            string crossIconImagePath = "/images/cross_icon.png";
+            Button crossButton = CreateButton(crossIconImagePath);
+            crossButton.Clicked += OnCrossButtonClicked;
+
+            return crossButton;
+        }
+
+        private Button GetEyeButton()
+        {
+            string eyeIconImagePath = "/images/eye_icon.png";
+            Button eyeButton = CreateButton(eyeIconImagePath);
+            eyeButton.Clicked += OnEyeButtonClicked;
+            eyeButton.IsSelectable = true;
+
+            return eyeButton;
+        }
+
+        private View CreatePasswordEntryItem()
+        {
+            View passwordEntryView = new View()
+            {
+                Layout = new LinearLayout()
+                {
+                    LinearOrientation = LinearLayout.Orientation.Horizontal,
+                },
+                HeightSpecification = 48,
+                Padding = new Extents(5, 5, 10,0),
+            };
+
+            mPasswordField = CreatePasswordField();
+            mPasswordField.TextChanged += OnTextChanged;
+
+            passwordEntryView.Add(mPasswordField);
+            passwordEntryView.Add(GetCrossButton());
+            passwordEntryView.Add(GetEyeButton());
+
+            return passwordEntryView;
+        }
+
+        private void OnEyeButtonClicked(object sender, ClickedEventArgs e)
+        {
+            Debug("+");
+            Button button = (Button)sender;
+            var hiddenInput = mPasswordField.GetHiddenInput();
+
+            if (button.IsSelected)
+            {
+                Debug("Show Password Selected");
+                UpdateHiddenProperty(false);
+            }
+            else {
+                Debug("Show Password UnSelected");
+                UpdateHiddenProperty(true);
+            }
+
+        }
+
+        private void OnCrossButtonClicked(object sender, ClickedEventArgs e)
+        {
+            Debug("+");
+            Button button = (Button)sender;
+            mPasswordField.Text = "";
+        }
+
         private void OnCancelClicked(object source, ClickedEventArgs args)
         {
             NUIApplication.GetDefaultWindow().GetDefaultNavigator().Pop();
index 0b6d8cee317d94f4f329081da20c5e43bdeb4c5a..43c8745e43f5a33617b0eaaa71b896884f484da5 100755 (executable)
         static public string IDS_WIFI_BODY_PROXY = "Proxy";\r
         static public string IDS_WIFI_BODY_DONE = "Done";\r
         static public string IDS_WIFI_BODY_GATEWAY = "Gateway";\r
+        static public string IDS_WIFI_BODY_TYPE_PASSWORD = "Type password.";\r
     }\r
 }\r
index b0cbfff9eeedaa2159e8dfed1f0ab4f2c9b36045..8c5af63ae09b04e36c6b25ac665d1d9f29b32ca7 100644 (file)
Binary files a/packaging/org.tizen.cssetting-wifi-1.1.4.rpk and b/packaging/org.tizen.cssetting-wifi-1.1.4.rpk differ