protected override View OnCreate()
{
WiFiDirect.WFDStateChanged += OnWFDStateChanged;
+ WiFiDirect.WFDStatusChanged += OnConnectionStatusChanged;
Debug("MainPage: " + this.GetHashCode());
base.OnCreate();
{
Debug("+");
WiFiDirect.WFDStateChanged -= OnWFDStateChanged;
+ WiFiDirect.WFDStatusChanged -= OnConnectionStatusChanged;
base.OnDestroy();
}
case WFDState.Discovering:
UpdateScanButton(true);
ChangeScanningState(true);
- WiFiDirect.WFDStatusChanged += OnConnectionStatusChanged;
break;
case WFDState.Activated:
if (mNeedScanning)
{
+ mPeerSource.ClearList();
StartScan();
UpdateScanButton(true);
ChangeScanningState(true);
break;
case WFDState.Disconnecting:
mNeedScanning = true;
- mPeerSource.UpdateTitle();
- WiFiDirect.WFDStatusChanged -= OnConnectionStatusChanged;
+ mPeerSource.ClearList();
+ break;
+ case WFDState.Connecting:
+ UpdateScanButton(true);
break;
- //TODO: update for further states.
}
}
Debug("Connecting Peer is NULL");
return;
}
-
- OnConnectionRequest(connectingPeer);
+ var page = new ConnectionPopup(connectingPeer);
+ page.ShowPopup();
break;
default:
break;
}
}
- private void OnConnectionRequest(Peer connectingPeer)
- {
- try
- {
- var page = new ConnectionPopup(connectingPeer);
- if (page != null)
- {
- NUIApplication.GetDefaultWindow().GetDefaultNavigator().Add(page);
- page.SetPopupPage(page);
- }
- else
- {
- Debug("Page is NULL");
- }
- }
- catch (Exception e)
- {
- Debug("An error occurred: " + e.Message);
- }
- }
-
private void ChangeScanningState(bool isScanning)
{
if(mPeerSource != null)
private void OnScanStopButtonClicked(object sender, ClickedEventArgs e)
{
- if (WiFiDirect.IsDiscoverable())
+ Debug("+");
+ if (WiFiDirect.GetState() == WiFiDirectState.Discovering)
{
StopDiscovery();
}
- else
+ else if (WiFiDirect.GetState() == WiFiDirectState.Activated)
{
StartScan();
}
+ else if (WiFiDirect.GetState() == WiFiDirectState.Connecting)
+ {
+ EnableCancelButton();
+ }
}
private void StopDiscovery()
{
Debug("+");
- WiFiDirect.WFDStatusChanged -= OnConnectionStatusChanged;
bool discoveryStopped = WiFiDirect.StopDiscovery();
if (discoveryStopped)
{
private void UpdateScanButton(bool visible)
{
mScanButton.IsEnabled = visible;
- if (WiFiDirect.IsDiscoverable())
+ if (WiFiDirect.GetState() == WiFiDirectState.Discovering)
{
mScanButton.Text = GetText(nameof(Resources.IDS_WIFI_SK_STOP));
}
- else
+ else if (WiFiDirect.GetState() == WiFiDirectState.Activated)
{
mScanButton.Text = GetText(nameof(Resources.IDS_WIFI_SK4_SCAN));
}
+ else if (WiFiDirect.GetState() == WiFiDirectState.Connecting)
+ {
+ mScanButton.Text = GetText(nameof(Resources.IDS_WIFI_SK_CANCEL));
+ }
}
string GetText(string str)
{
return ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(str);
}
+
+ private void EnableCancelButton()
+ {
+ Debug("+");
+ var page = new CancelConnectionPopup();
+ if (page != null)
+ {
+ NUIApplication.GetDefaultWindow().GetDefaultNavigator().Add(page);
+ }
+ mNeedScanning = true;
+ }
}
}
}
}
+ /// <summary>
+ /// Looks up a localized string similar to This Wi-Fi Direct connection will be canceled..
+ /// </summary>
+ public static string IDS_WIFI_POP_THIS_WI_FI_DIRECT_CONNECTION_WILL_BE_CANCELLED {
+ get {
+ return ResourceManager.GetString("IDS_WIFI_POP_THIS_WI_FI_DIRECT_CONNECTION_WILL_BE_CANCELLED", resourceCulture);
+ }
+ }
+
/// <summary>
/// Looks up a localized string similar to Cancel.
/// </summary>
<value>Connect to ({0}) in ({1}) seconds.
</value>
</data>
+ <data name="IDS_WIFI_POP_THIS_WI_FI_DIRECT_CONNECTION_WILL_BE_CANCELLED" xml:space="preserve">
+ <value>This Wi-Fi Direct connection will be canceled.</value>
+ </data>
<data name="IDS_WIFI_SK2_OK" xml:space="preserve">
<value>OK</value>
</data>
<data name="IDS_WIFI_POP_CONNECT_TO_PS_IN_PD_SECONDS" xml:space="preserve">
<value>({1})에 ({0})초 이내에 연결됩니다.</value>
</data>
+ <data name="IDS_WIFI_POP_THIS_WI_FI_DIRECT_CONNECTION_WILL_BE_CANCELLED" xml:space="preserve">
+ <value>Wi-Fi 다이렉트 연결을 취소합니다.</value>
+ </data>
<data name="IDS_WIFI_SK2_OK" xml:space="preserve">
<value>확인</value>
</data>
<data name="IDS_WIFI_POP_CONNECT_TO_PS_IN_PD_SECONDS" xml:space="preserve">
<value>Connect to ({0}) in ({1}) seconds.</value>
</data>
+ <data name="IDS_WIFI_POP_THIS_WI_FI_DIRECT_CONNECTION_WILL_BE_CANCELLED" xml:space="preserve">
+ <value>This Wi-Fi Direct connection will be canceled.</value>
+ </data>
<data name="IDS_WIFI_SK2_OK" xml:space="preserve">
<value>ok</value>
</data>
Error("Error: " + e.Message + "\n" + e.StackTrace);
}
}
+
+ static public WiFiDirectState GetState()
+ {
+ return WiFiDirectManager.State;
+ }
}
internal class WFDStateChangedEventArgs
~Peer()
{
Debug("+");
- mWfdPeer.ConnectionStateChanged -= ConnectionStateChanged;
}
private void ConnectionStateChanged(object sender, ConnectionStateChangedEventArgs e)
case WiFiDirectConnectionState.DisconnectInd:
State = PeerState.Disconnected;
break;
+ case WiFiDirectConnectionState.ConnectionRequest:
+ var page = new ConnectionPopup(this);
+ page.ShowPopup();
+ State = PeerState.Connecting;
+ break;
}
}
Debug("StateInfo " + StateInfo);
Debug ("Connected?: " + mWfdPeer.IsConnected);
return mState == PeerState.Connected;
}
+
+ public void CancelConnection()
+ {
+ Debug("+");
+ try
+ {
+ mWfdPeer.CancelConnection();
+ }
+ catch (Exception e)
+ {
+ Error("Error in cancelling connection " + e.Message);
+ }
+ }
+
}
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns="http://tizen.org/ns/packages" api-version="7.0"
- package="org.tizen.cssetting-wifi-direct" version="1.0.4"
+ package="org.tizen.cssetting-wifi-direct" version="1.0.5"
res-type="org.tizen.appfw.gadget.setting-wifi-direct" res-version="1.0.0">
<allowed-package id="org.tizen.*">
<required-privileges>
--- /dev/null
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI;
+using Tizen.NUI.Components;
+using SettingWiFiDirect.TextResources;
+using static SettingWiFiDirect.Logger;
+
+namespace SettingWiFiDirect
+{
+ internal class CancelConnectionPopup : DialogPage
+ {
+ public CancelConnectionPopup()
+ {
+ Debug("+");
+ CreateComponents();
+ }
+
+ internal void CreateComponents()
+ {
+ var cancelConnectionView = new View()
+ {
+ Layout = new LinearLayout()
+ {
+ LinearOrientation = LinearLayout.Orientation.Vertical,
+ HorizontalAlignment = HorizontalAlignment.Center,
+ },
+ WidthSpecification = 200,
+ HeightSpecification = 100,
+ };
+
+ var item = new DefaultLinearItem();
+ cancelConnectionView.Add(item);
+
+ string message = GetText(nameof(Resources.IDS_WIFI_POP_THIS_WI_FI_DIRECT_CONNECTION_WILL_BE_CANCELLED));
+ var messageItem = new TextLabel(message)
+ {
+ HorizontalAlignment = HorizontalAlignment.Center,
+ };
+
+ cancelConnectionView.Add(messageItem);
+
+ var cancelButton = CreateCancelButton();
+ var stopButton = CreateStopButton();
+
+ Content = new AlertDialog()
+ {
+ Title = GetText(nameof(Resources.IDS_WIFI_HEADER_WI_FI_DIRECT_CONNECTION_ABB)),
+ Content = cancelConnectionView,
+ Actions = new View[] { cancelButton, stopButton },
+ };
+ }
+
+ private Button CreateCancelButton()
+ {
+ var cancelButton = new Button()
+ {
+ Text = GetText(nameof(Resources.IDS_WIFI_SK_CANCEL)),
+ WidthSpecification = 300,
+ HeightSpecification = 80,
+ };
+ cancelButton.Clicked += OnCancelButtonClicked;
+ return cancelButton;
+ }
+
+ private Button CreateStopButton()
+ {
+ var stopButton = new Button()
+ {
+ Text = GetText(nameof(Resources.IDS_WIFI_SK_STOP)),
+ WidthSpecification = 300,
+ HeightSpecification = 80,
+ };
+ stopButton.Clicked += OnStopButtonClicked;
+ return stopButton;
+ }
+
+ private void OnCancelButtonClicked(object sender, ClickedEventArgs e)
+ {
+ Debug("+");
+ NUIApplication.GetDefaultWindow().GetDefaultNavigator().Remove(this);
+ }
+
+ private void OnStopButtonClicked(object source, ClickedEventArgs args)
+ {
+ Debug("+");
+ var connectingPeer = WiFiDirect.GetConnectingPeer();
+ if (connectingPeer != null)
+ {
+ connectingPeer.CancelConnection();
+ }
+
+ NUIApplication.GetDefaultWindow().GetDefaultNavigator().Remove(this);
+ }
+
+ string GetText(string str)
+ {
+ return ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(str);
+ }
+ }
+}
using Tizen.NUI.Components;
using SettingWiFiDirect.TextResources;
using static SettingWiFiDirect.Logger;
+using System;
namespace SettingWiFiDirect
{
{
private Timer mTimer;
private Progress mProgress;
- private ConnectionPopup mAlertPage = null;
private const int MaxDuration = 120;
private Peer mConnectingPeer = null;
if (mProgress.CurrentValue == MaxDuration)
{
- if (mAlertPage != null)
- {
- NUIApplication.GetDefaultWindow().GetDefaultNavigator().Remove(mAlertPage);
- }
+ NUIApplication.GetDefaultWindow().GetDefaultNavigator().Remove(this);
return false;
}
mTimer.Stop();
string macAddress = mConnectingPeer.Address;
WiFiDirect.RejectConnection(macAddress);
- if (mAlertPage != null)
- {
- NUIApplication.GetDefaultWindow().GetDefaultNavigator().Remove(mAlertPage);
- }
+ NUIApplication.GetDefaultWindow().GetDefaultNavigator().Remove(this);
}
private Button CreateOkButton()
Debug("+");
string macAddress = mConnectingPeer.Address;
WiFiDirect.AcceptConnection(macAddress);
- if (mAlertPage != null)
- {
- NUIApplication.GetDefaultWindow().GetDefaultNavigator().Remove(mAlertPage);
- }
- }
-
- public void SetPopupPage(ConnectionPopup page)
- {
- Debug("+");
- mAlertPage = page;
+ NUIApplication.GetDefaultWindow().GetDefaultNavigator().Remove(this);
}
string GetText(string str)
return ResourceManager.TextResourceManager.NUIGadgetResourceManager.GetString(str);
}
+ public void ShowPopup()
+ {
+ Debug("+");
+ try
+ {
+ NUIApplication.GetDefaultWindow().GetDefaultNavigator().Add(this);
+ }
+ catch (Exception e)
+ {
+ Debug("Error in showing popup.." + e.Message);
+ }
+ }
}
}
}
}
- public void UpdateTitle()
+ public void ClearList()
{
Debug("+");
- mPeerCollection.Title = mAvailableGroupTitle;
+ this.Clear();
+ mPeerCollection = new DeviceCollection(mAvailableGroupTitle);
+ this.Add(mPeerCollection);
}
private void AddConnectedDevice()
Name: org.tizen.setting-wifi-direct
summary: NUI wifi-direct setting application
-Version: 1.0.4
+Version: 1.0.5
Release: 1
Provides: org.tizen.setting-wifi-direct = %{version}-%{release}
Group: Applications/Security