Implement loading icon to show it when wifi-direct 18/316718/2
authorAkash Kumar <akash1.kumar@samsung.com>
Tue, 17 Dec 2024 10:54:45 +0000 (16:24 +0530)
committerAkash Kumar <akash1.kumar@samsung.com>
Thu, 19 Dec 2024 05:22:18 +0000 (05:22 +0000)
is scanning

Change-Id: Ie64c9e7354b30bc98456a26a5e5a616d230b0f12
Signed-off-by: Akash Kumar <akash1.kumar@samsung.com>
SettingWiFiDirect/SettingWiFiDirect/SettingWiFiDirect.cs
SettingWiFiDirect/SettingWiFiDirect/controller/WiFiDirect.cs
SettingWiFiDirect/SettingWiFiDirect/model/WfdEnumerations.cs
SettingWiFiDirect/SettingWiFiDirect/res/allowed/SettingWiFiDirect/loadingAnimation.json [new file with mode: 0644]
SettingWiFiDirect/SettingWiFiDirect/tizen_dotnet_project.yaml
SettingWiFiDirect/SettingWiFiDirect/view/WiFiDirectDeviceView.cs
packaging/org.tizen.cssetting-wifi-direct-1.0.3.rpk

index b204d3bb74137efe7472ccb2f1a1b34def02f6f3..a5b04ede879bfd43e20ff44144d4a12496df29a0 100644 (file)
@@ -59,31 +59,24 @@ namespace SettingWiFiDirect
             base.OnCreate();
             ResourceManager.TextResourceManager = this;
             mPeerSource = new PeerSource();
+            mPeerSource.SetScanningState(true);
             return CreateComponents();
         }
 
-        internal Loading CreateLoadingIcon()
+        internal View CreateLoadingIcon()
         {
-            var path = Resources.GetPath();
-            var imageArray = new string[36];
-            for (int i = 0; i < 36; i++)
-            {
-                if (i < 10)
-                {
-                    imageArray[i] = path + "/loading/loading_0" + i + ".png";
-                }
-                else
-                {
-                    imageArray[i] = path + "/loading/loading_" + i + ".png";
-                }
-            }
-
-            return new Loading()
+            var lottieAnimationView = new LottieAnimationView()
             {
                 WidthSpecification = 40,
                 HeightSpecification = 40,
-                ImageArray = imageArray,
+                Size = new Size(40, 40),
+                URL = Resources.GetPath() + "/loadingAnimation.json",
+                LoopCount = -1,
             };
+
+            lottieAnimationView.SetMinMaxFrame(10, 30);
+            lottieAnimationView.Play();
+            return lottieAnimationView;
         }
 
         internal View CreateComponents()
@@ -114,9 +107,9 @@ namespace SettingWiFiDirect
                     group.Label.SetBinding(TextLabel.TextProperty, "Title");
                     group.Label.HorizontalAlignment = HorizontalAlignment.Begin;
 
-                    //var icon = CreateLoadingIcon();
-                    //icon.SetBinding(View.OpacityProperty, "IconOpacity");
-                    //group.Icon = icon;
+                    var icon = CreateLoadingIcon();
+                    icon.SetBinding(View.OpacityProperty, "IconOpacity");
+                    group.Icon = icon;
                     return group;
                 }),
                 IsGrouped = true,
@@ -142,8 +135,18 @@ namespace SettingWiFiDirect
 
         private void OnWFDStateChanged(Object sender, WFDStateChangedEventArgs e)
         {
-            Debug("+");
-            UpdateDeviceList();
+            Debug("State: " + e.State);
+            switch (e.State)
+            {
+                case WFDState.Discovering:
+                    mPeerSource.SetScanningState(true);
+                    break;
+                case WFDState.Activated:
+                    UpdateDeviceList();
+                    mPeerSource.SetScanningState(false);
+                    break;
+                //TODO: update for further states.
+            }
         }
 
         private Selector<Color> GetDefaultColorSelector()
index 44df275083acfd6e690f5b1526a28ca76437227d..741d19da94ef8d09e844cd61708565d1046d9652 100644 (file)
@@ -87,8 +87,27 @@ namespace SettingWiFiDirect
 
         private WFDState ConvertWFDState(WiFiDirectState state)
         {
-            //TODO: update logic based on state
-            return WFDState.Activated;
+            switch (state)
+            {
+                case WiFiDirectState.Deactivated:
+                    return WFDState.Deactivated;
+                case WiFiDirectState.Deactivating:
+                    return WFDState.Deactivating;
+                case WiFiDirectState.Activated:
+                    return WFDState.Activated;
+                case WiFiDirectState.Discovering:
+                    return WFDState.Discovering;
+                case WiFiDirectState.Connecting:
+                    return WFDState.Connecting;
+                case WiFiDirectState.Disconnecting:
+                    return WFDState.Disconnecting;
+                case WiFiDirectState.Connected:
+                    return WFDState.Connected;
+                case WiFiDirectState.GroupOwner:
+                    return WFDState.GroupOwner;
+                default:
+                    return WFDState.Deactivated;
+            }
         }
 
         public void StartDiscovery()
index 146e136315c2dfe5aa43c66a232d53a7f3ee12e9..705b14c228a7c97735cefe9d18d4b346aa3f94ed 100644 (file)
@@ -11,10 +11,14 @@ namespace SettingWiFiDirect
 
     public enum WFDState
     {
-        //TODO :add more states if needed
         Deactivated = 0,
-        Activated = 1,
-        Discovering = 2,
-        Connected = 3
+        Deactivating,
+        Activating,
+        Activated,
+        Discovering,
+        Connecting,
+        Disconnecting,
+        Connected,
+        GroupOwner
     }
 }
diff --git a/SettingWiFiDirect/SettingWiFiDirect/res/allowed/SettingWiFiDirect/loadingAnimation.json b/SettingWiFiDirect/SettingWiFiDirect/res/allowed/SettingWiFiDirect/loadingAnimation.json
new file mode 100644 (file)
index 0000000..c2c0461
--- /dev/null
@@ -0,0 +1 @@
+{"v":"5.9.0","fr":30,"ip":0,"op":30,"w":200,"h":200,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"LT_small Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0],"e":[-359]},{"t":30}],"ix":10},"p":{"a":0,"k":[100,100,0],"ix":2,"l":2},"a":{"a":0,"k":[100,100,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-14.536,-0.952],[-11.556,-8.867],[-4.682,-13.794],[3.77,-14.07]],"o":[[12.615,-7.283],[14.535,0.953],[11.557,8.868],[4.682,13.793],[0,0]],"v":[[-55.868,-36.091],[-14.226,-45.801],[25.793,-30.739],[50.699,4.018],[52.098,46.753]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.384313755409,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":16,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[119.043,72.309],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"LT_big Outlines","sr":1,"ks":{"o":{"a":0,"k":10,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0],"e":[359]},{"t":30}],"ix":10},"p":{"a":0,"k":[100,100,0],"ix":2,"l":2},"a":{"a":0,"k":[100,100,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[12.112,8.092],[5.574,13.457],[-2.842,14.287],[-10.3,10.3],[-14.287,2.842],[-13.457,-5.574],[-8.093,-12.112],[0,-14.566]],"o":[[-14.567,0],[-12.111,-8.093],[-5.575,-13.458],[2.841,-14.287],[10.3,-10.3],[14.286,-2.842],[13.458,5.574],[8.093,12.111],[0,0]],"v":[[0.714,74.363],[-40.204,61.951],[-67.329,28.898],[-71.521,-13.655],[-51.365,-51.365],[-13.655,-71.521],[28.898,-67.33],[61.951,-40.204],[74.363,0.713]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.384313755409,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":16,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[99.286,99.287],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":30,"st":0,"bm":0}],"markers":[]}
\ No newline at end of file
index 58dcc8b44f9698df4ed85e5c9b30efaf1d52d2d8..125277b57d29a00e53db62189e97b22df812b9c1 100644 (file)
@@ -42,6 +42,7 @@ files:
   - controller/WiFiDirect.cs
   - model/Peer.cs
   - model/WfdEnumerations.cs
+  - res/allowed/SettingWiFiDirect/loadingAnimation.json
   - res/allowed/org.tizen.appfw.gadget.setting-wifi-direct/SettingWiFiDirect.dll
   - res/allowed/org.tizen.appfw.gadget.setting-wifi-direct/en-US/SettingWiFiDirect.resources.dll
   - res/allowed/org.tizen.appfw.gadget.setting-wifi-direct/ko-KR/SettingWiFiDirect.resources.dll
index a94340959cec2f6a9682b50f9920a7645732ee46..9f759ca74cd7b4324d98d2803a8c8b2ca075c73d 100644 (file)
@@ -10,11 +10,13 @@ namespace SettingWiFiDirect
     public class DeviceCollection : ObservableCollection<Peer>
     {
         private string title;
+        private float iconOpacity;
 
         public DeviceCollection(string groupTitle)
         {
             Debug("");
             title = groupTitle;
+            iconOpacity = 0.0f;
         }
 
         public string Title
@@ -29,6 +31,17 @@ namespace SettingWiFiDirect
                 OnPropertyChanged(new PropertyChangedEventArgs("Title"));
             }
         }
+
+        public float IconOpacity
+        {
+            get => iconOpacity;
+            set
+            {
+                iconOpacity = value;
+                OnPropertyChanged(new PropertyChangedEventArgs("IconOpacity"));
+            }
+        }
+
         internal void AddDevice(Peer peer)
         {
             if (this.Count == 0)
@@ -87,5 +100,10 @@ namespace SettingWiFiDirect
                 mAvailable.AddDevice(item);
             }
         }
+
+        public void SetScanningState(bool isScanning)
+        {
+            mAvailable.IconOpacity = isScanning ? 1.0f : 0.0f;
+        }
     }
 }
index 29caf918dbbb9ad590be136b230f8bbb72e685a9..1b8a3bfa4fb2b34c1e15433b2bdcc440d6cbc6db 100644 (file)
Binary files a/packaging/org.tizen.cssetting-wifi-direct-1.0.3.rpk and b/packaging/org.tizen.cssetting-wifi-direct-1.0.3.rpk differ