fix event register/unregister issue 58/115558/2 accepted/tizen/mobile/20170221.225256 submit/tizen/20170221.043416
authorKyeonghun Lee <kh9090.lee@samsung.com>
Mon, 20 Feb 2017 10:02:42 +0000 (19:02 +0900)
committerintae jeon <intae.jeon@samsung.com>
Tue, 21 Feb 2017 04:33:29 +0000 (20:33 -0800)
Change-Id: I13a5dd9e8bfff667f96cd9393fefa509b9ee3473
Signed-off-by: Kyeonghun Lee <kh9090.lee@samsung.com>
Tizen.Messaging/Interop/Interop.Messages.cs
Tizen.Messaging/Tizen.Messaging.Messages/MessagesEvent.cs

index 7697262..c68e3f1 100755 (executable)
@@ -108,9 +108,6 @@ internal static partial class Interop
         [DllImport(Libraries.Messages, EntryPoint = "messages_set_message_incoming_cb")]
         internal static extern int SetMessageIncomingCb(IntPtr serviceHandle, MessageIncomingCallback cb, IntPtr userData);
 
-        [DllImport(Libraries.Messages, EntryPoint = "messages_unset_message_incoming_cb")]
-        internal static extern int UnsetMessageIncomingCb(IntPtr serviceHandle);
-
         [DllImport(Libraries.Messages, EntryPoint = "messages_send_message")]
         internal static extern int SendMessage(IntPtr serviceHandle, IntPtr messageHandle, bool saveToSentbox, MessageSentCallback cb, IntPtr userData);
 
index dd0d616..bae6475 100755 (executable)
@@ -24,11 +24,13 @@ namespace Tizen.Messaging.Messages
 
         private Interop.Messages.MessageIncomingCallback _messageReceivedCallback;
 
+        private bool _registered = false;
+
         internal event EventHandler<MessageReceivedEventArgs> _MessageReceived
         {
             add
             {
-                if (_messageReceived == null)
+                if (_registered == false && _messageReceived == null)
                 {
                     RegisterMessageReceivedEvent();
                 }
@@ -37,10 +39,6 @@ namespace Tizen.Messaging.Messages
             remove
             {
                 _messageReceived -= value;
-                if (_messageReceived == null)
-                {
-                    UnregisterMessageReceivedEvent();
-                }
             }
         }
 
@@ -111,15 +109,8 @@ namespace Tizen.Messaging.Messages
             {
                 Log.Error(Globals.LogTag, "Failed to set message incoming callback, Error - " + (MessagesError)ret);
             }
-        }
 
-        private void UnregisterMessageReceivedEvent()
-        {
-            int ret = Interop.Messages.UnsetMessageIncomingCb(_MessageServiceHandle);
-            if (ret != (int)MessagesError.None)
-            {
-                Log.Error(Globals.LogTag, "Failed to unset message incoming callback, Error - " + (MessagesError)ret);
-            }
+            _registered = true;
         }
     }
 }