Implement scan stop button 46/321046/10
authorSaksham Grover <s.grover@partner.samsung.com>
Thu, 13 Mar 2025 08:33:32 +0000 (14:03 +0530)
committerSaksham Grover <s.grover@partner.samsung.com>
Tue, 25 Mar 2025 11:34:36 +0000 (17:04 +0530)
Change-Id: I1dbc677e7a709cf9627d47d9cfce19cf7f09405e
Signed-off-by: Saksham Grover <s.grover@partner.samsung.com>
SettingWiFiDirect/SettingWiFiDirect/SettingWiFiDirect.cs
SettingWiFiDirect/SettingWiFiDirect/TextResources/Resources.Designer.cs
SettingWiFiDirect/SettingWiFiDirect/TextResources/Resources.en-US.resx
SettingWiFiDirect/SettingWiFiDirect/TextResources/Resources.ko-KR.resx
SettingWiFiDirect/SettingWiFiDirect/TextResources/Resources.resx
SettingWiFiDirect/SettingWiFiDirect/controller/WiFiDirect.cs

index 2bd8967250bf1172c4500a4e5861aacaed24bd42..5f731341d02a4bc751a39656adf19038b22e64f8 100644 (file)
@@ -16,6 +16,7 @@ namespace SettingWiFiDirect
     {
         private PeerSource mPeerSource;
         private CollectionView mScanList;
+        private Button mScanButton;
         bool mNeedScanning;
         public override string ProvideTitle() => NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_BODY_WI_FI_DIRECT_ABB));
 
@@ -25,6 +26,42 @@ namespace SettingWiFiDirect
             CreateComponents();
         }
 
+        public override IEnumerable<View> ProvideMoreActions()
+        {
+            ViewStyle viewStyle = GetButtonViewStyle();
+
+            mScanButton = new Button()
+            {
+                Text = ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_SK_STOP))
+            };
+            mScanButton.Clicked += OnScanStopButtonClicked;
+            mScanButton.ApplyStyle(viewStyle);
+
+            return new View[] { mScanButton };
+        }
+
+        public string GetButtonText()
+        {
+            if(WiFiDirect.IsDiscoverable())
+            {
+                return ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof
+                       (Resources.IDS_WIFI_SK_STOP));
+            }
+            return ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(nameof(Resources.IDS_WIFI_SK4_SCAN));
+        }
+
+        private ViewStyle GetButtonViewStyle()
+        {
+            ViewStyle viewStyle = new ViewStyle();
+            viewStyle.Opacity = new Selector<float?>()
+            {
+                Normal = 1.0f,
+                Disabled = 0.0f
+            };
+
+            return viewStyle;
+        }
+
         public MainPage()
         {
             Debug("+");
@@ -281,6 +318,7 @@ namespace SettingWiFiDirect
                 Debug("Discovery started");
                 mNeedScanning = false;
                 ChangeScanningState(true);
+                mScanButton.Text = GetButtonText();
             }
             Debug("-");
         }
@@ -334,5 +372,31 @@ namespace SettingWiFiDirect
                 peer.Disconnect();
             }
         }
+
+        private void OnScanStopButtonClicked(object sender, ClickedEventArgs e)
+        {
+            if (WiFiDirect.IsDiscoverable())
+            {
+                StopDiscovery();
+            }
+            else
+            {
+                StartScan();
+            }
+        }
+
+        private void StopDiscovery()
+        {
+            Debug("+");
+            bool discoveryStopped = WiFiDirect.StopDiscovery();
+            if (discoveryStopped)
+            {
+                Debug("Discovery stopped");
+                mNeedScanning = false;
+                ChangeScanningState(false);
+                mScanButton.Text = GetButtonText();
+            }
+            Debug("-");
+        }
     }
 }
index 5133c514d60d7b51d7addf65a8f10f0a0445a160..e6f08877a4b61dbd58b952322d86d937c1f4be0d 100644 (file)
@@ -198,6 +198,15 @@ namespace SettingWiFiDirect.TextResources {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to stop.
+        /// </summary>
+        public static string IDS_WIFI_SK_STOP {
+            get {
+                return ResourceManager.GetString("IDS_WIFI_SK_STOP", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to ok.
         /// </summary>
@@ -206,5 +215,14 @@ namespace SettingWiFiDirect.TextResources {
                 return ResourceManager.GetString("IDS_WIFI_SK2_OK", resourceCulture);
             }
         }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to scan.
+        /// </summary>
+        public static string IDS_WIFI_SK4_SCAN {
+            get {
+                return ResourceManager.GetString("IDS_WIFI_SK4_SCAN", resourceCulture);
+            }
+        }
     }
 }
index 5013c0209b33aefe7494c6d75398e49ef9e3c719..a183863db6e22b6f97c9333a0c88b12073966702 100644 (file)
   <data name="IDS_WIFI_SK2_OK" xml:space="preserve">
     <value>OK</value>
   </data>
+  <data name="IDS_WIFI_SK4_SCAN" xml:space="preserve">
+    <value>Scan</value>
+  </data>
   <data name="IDS_WIFI_SK_CANCEL" xml:space="preserve">
     <value>Cancel</value>
   </data>
   <data name="IDS_WIFI_SK_DISCONNECT" xml:space="preserve">
     <value>Disconnect</value>
   </data>
+  <data name="IDS_WIFI_SK_STOP" xml:space="preserve">
+    <value>Stop</value>
+  </data>
 </root>
\ No newline at end of file
index 18870255aabc65dbbeb8db224cff1ed542a64c9f..8dc425c6f6fc9f2b55ce1e614c188d03b577b08f 100644 (file)
   <data name="IDS_WIFI_SK2_OK" xml:space="preserve">
     <value>확인</value>
   </data>
+  <data name="IDS_WIFI_SK4_SCAN" xml:space="preserve">
+    <value>찾기</value>
+  </data>
   <data name="IDS_WIFI_SK_CANCEL" xml:space="preserve">
     <value>취소</value>
   </data>
   <data name="IDS_WIFI_SK_DISCONNECT" xml:space="preserve">
     <value>연결 해제</value>
   </data>
+  <data name="IDS_WIFI_SK_STOP" xml:space="preserve">
+    <value>중지</value>
+  </data>
 </root>
\ No newline at end of file
index fd8e4fede7fee0e900c3a2f613685e1f516a8a9c..2c5afe83499c24edfbec70aaf552898321739d10 100644 (file)
   <data name="IDS_WIFI_SK2_OK" xml:space="preserve">
     <value>ok</value>
   </data>
+  <data name="IDS_WIFI_SK4_SCAN" xml:space="preserve">
+    <value>scan</value>
+  </data>
   <data name="IDS_WIFI_SK_CANCEL" xml:space="preserve">
     <value>Cancel</value>
   </data>
   <data name="IDS_WIFI_SK_DISCONNECT" xml:space="preserve">
     <value>Disconnect</value>
   </data>
+  <data name="IDS_WIFI_SK_STOP" xml:space="preserve">
+    <value>stop</value>
+  </data>
 </root>
\ No newline at end of file
index 0535cbf3febd4f51b56092b80493bf5be247b4b6..fa9af637873c30bb56212977851882fed573eb66 100644 (file)
@@ -216,6 +216,21 @@ namespace SettingWiFiDirect
             return WiFiDirectManager.Name;
         }
 
+        static public bool StopDiscovery()
+        {
+            Debug("+");
+            try
+            {
+                WiFiDirectManager.CancelDiscovery();
+            }
+            catch (Exception e)
+            {
+                Error("Error: " + e.Message + "\n" + e.StackTrace);
+                return false;
+            }
+            return true;
+        }
+
     }
 
     internal class WFDStateChangedEventArgs