{
if (_ProfileStateChanged == null)
{
- ProfileStateChangedStart();
+ try
+ {
+ ProfileStateChangedStart();
+ } catch (Exception e)
+ {
+ Log.Error(Globals.LogTag, "Exception on adding ProfileStateChanged\n" + e.ToString());
+ return;
+ }
}
_ProfileStateChanged += value;
}, null);
_ProfileStateChanged -= value;
if (_ProfileStateChanged == null)
{
- ProfileStateChangedStop();
+ try
+ {
+ ProfileStateChangedStop();
+ }
+ catch (Exception e)
+ {
+ Log.Error(Globals.LogTag, "Exception on removing ProfileStateChanged\n" + e.ToString());
+ }
}
}, null);
}
{
_profileChangedCallback = (ProfileState state, IntPtr userData) =>
{
- Log.Info(Globals.LogTag, "***** MOON ProfileStateChanged occur");
if (_ProfileStateChanged != null)
{
_ProfileStateChanged(null, new ProfileStateEventArgs(state));
if ((ConnectionError)ret != ConnectionError.None)
{
Log.Error(Globals.LogTag, "It failed to register callback for changing profile state, " + (ConnectionError)ret);
+ ConnectionErrorFactory.ThrowConnectionException(ret);
}
}
if ((ConnectionError)ret != ConnectionError.None)
{
Log.Error(Globals.LogTag, "It failed to unregister callback for changing profile state, " + (ConnectionError)ret);
+ ConnectionErrorFactory.ThrowConnectionException(ret);
}
}
private void Dispose(bool disposing)
{
- Log.Debug(Globals.LogTag, ">>> ConnectionProfile Dispose with " + disposing);
if (disposed)
return;
private void Destroy()
{
- Interop.ConnectionProfile.Destroy(ProfileHandle);
- ProfileHandle = IntPtr.Zero;
+ int ret = Interop.ConnectionProfile.Destroy(ProfileHandle);
+ if ((ConnectionError)ret == ConnectionError.None)
+ {
+ ProfileHandle = IntPtr.Zero;
+ }
}
internal void CheckDisposed()
/// <since_tizen> 3 </since_tizen>
/// <param name="profile">The connection profile object.</param>
/// <returns>A task indicates whether the ConnectProfileAsync method is done successfully or not.</returns>
+ /// <remarks>
+ /// This method must be called from MainThread.
+ /// </remarks>
/// <privilege>http://tizen.org/privilege/network.get</privilege>
/// <privilege>http://tizen.org/privilege/network.set</privilege>
/// <feature>http://tizen.org/feature/network.telephony</feature>
/// <since_tizen> 3 </since_tizen>
/// <param name="profile">The connection profile object.</param>
/// <returns>A task indicates whether the DisconnectProfileAsync method is done successfully or not.</returns>
+ /// <remarks>
+ /// This method must be called from MainThread.
+ /// </remarks>
/// <privilege>http://tizen.org/privilege/network.get</privilege>
/// <privilege>http://tizen.org/privilege/network.set</privilege>
/// <feature>http://tizen.org/feature/network.telephony</feature>
/// <param name="type">The cellular service type.</param>
/// <param name="profile">The connection profile object.</param>
/// <returns>A task indicates whether the SetDefaultCellularProfile method is done successfully or not.</returns>
+ /// <remarks>
+ /// This method must be called from MainThread.
+ /// </remarks>
/// <privilege>http://tizen.org/privilege/network.get</privilege>
/// <privilege>http://tizen.org/privilege/network.profile</privilege>
/// <feature>http://tizen.org/feature/network.telephony</feature>
if (_disposed)
return;
- Interop.WiFi.AP.Destroy(_apHandle);
- _apHandle = IntPtr.Zero;
+ Log.Info(Globals.LogTag, "WiFiAP Handle HashCode: " + _apHandle.GetHashCode());
+ int ret = Interop.WiFi.AP.Destroy(_apHandle);
+ if (ret == (int)WiFiError.None)
+ {
+ _apHandle = IntPtr.Zero;
+ }
_disposed = true;
}
/// </summary>
/// <since_tizen> 3 </since_tizen>
/// <returns> A task indicating whether the connect method is done or not.</returns>
+ /// <remarks>
+ /// This method must be called from MainThread.
+ /// </remarks>
/// <feature>http://tizen.org/feature/network.wifi</feature>
/// <privilege>http://tizen.org/privilege/network.set</privilege>
/// <privilege>http://tizen.org/privilege/network.get</privilege>
/// <exception cref="InvalidOperationException">Thrown when the method failed due to an invalid operation.</exception>
public Task ConnectAsync()
{
- Log.Info(Globals.LogTag, "ConnectAsync");
+ Log.Info(Globals.LogTag, "ConnectAsync HashCode: " + _apHandle.GetHashCode());
if (_disposed)
{
throw new ObjectDisposedException("Invalid AP instance (Object may have been disposed or released)");
/// <since_tizen> 3 </since_tizen>
/// <param name="info">A WpsInfo instance which is type of WpsPbcInfo or WpsPinInfo.</param>
/// <returns>A task indicating whether the ConnectWps method is done or not.</returns>
+ /// <remarks>
+ /// This method must be called from MainThread.
+ /// </remarks>
/// <feature>http://tizen.org/feature/network.wifi</feature>
/// <privilege>http://tizen.org/privilege/network.profile</privilege>
/// <privilege>http://tizen.org/privilege/network.get</privilege>
/// <param name="info">A WpsInfo instance which is of type WpsPbcInfo or WpsPinInfo.</param>
/// <returns>A task which contains Connected access point information.</returns>
/// <remarks>
- /// If WpsPinInfo is used, its object has to be constructed with a pin which must be 4 or 8 characters long.
+ /// If WpsPinInfo is used, its object has to be constructed with a pin which must be 4 or 8 characters long. \n
+ /// This method must be called from MainThread.
/// </remarks>
/// <feature>http://tizen.org/feature/network.wifi</feature>
/// <privilege>http://tizen.org/privilege/network.set</privilege>