[Tizen.Applications.DataControl] Fix the issue for native handle (#561)
authorkilig <inkyun.kil@samsung.com>
Tue, 20 Nov 2018 04:52:07 +0000 (13:52 +0900)
committersemun-lee <35090067+semun-lee@users.noreply.github.com>
Tue, 20 Nov 2018 04:52:07 +0000 (13:52 +0900)
Signed-off-by: Inkyun Kil <inkyun.kil@samsung.com>
src/Tizen.Applications.DataControl/Interop/Interop.DataControl.cs
src/Tizen.Applications.DataControl/Tizen.Applications.DataControl/Provider.cs

index e598ef4..f7c32d0 100755 (executable)
@@ -346,8 +346,8 @@ internal static partial class Interop
         [DllImport(Libraries.DataControl, EntryPoint = "datacontrol_provider_write_socket")]
         internal static extern unsafe ResultType WriteSelectResult(int socketFd, byte* buffer, uint nbytes, out uint bytesWrite);
 
-        [DllImport(Libraries.DataControl, EntryPoint = "data_control_provider_send_data_change_noti")]
-        internal static extern ResultType SendDataChange(IntPtr handle, ChangeType type, SafeBundleHandle data);
+        [DllImport(Libraries.DataControl, EntryPoint = "data_control_provider_send_data_change_noti_by_data_id")]
+        internal static extern ResultType SendDataChange(string dataId, ChangeType type, SafeBundleHandle data);
 
         [DllImport(Libraries.DataControl, EntryPoint = "data_control_sql_step_next")]
         internal static extern ResultType Next(SafeCursorHandle cursor);
index de03469..06acac7 100755 (executable)
@@ -33,7 +33,6 @@ namespace Tizen.Applications.DataControl
         private static IDictionary<string, Provider> _providerDict = new Dictionary<string, Provider>();
         private static Interop.DataControl.SqlRequestCallbacks _sqlRequestCallbacks;
         private static Interop.DataControl.MapRequestCallbacks _mapRequestCallbacks;
-        private IntPtr _nativeHandle;
         private static Interop.DataControl.DataChangeConsumerFilterCb _filterCallback;
         private static int _filterCallbackID;
         private static bool _filterRegistered;
@@ -825,7 +824,6 @@ namespace Tizen.Applications.DataControl
             if (dataID != null && _providerDict.ContainsKey(dataID))
             {
                 provider = _providerDict[dataID];
-                provider._nativeHandle = handlePtr;
                 Log.Info(LogTag, "DataID :" + dataID + ", hash code : " + provider.GetHashCode().ToString());
             }
             handle.Dispose();
@@ -852,12 +850,7 @@ namespace Tizen.Applications.DataControl
                 ErrorFactory.ThrowException(ResultType.InvalidParameter, false, "changedData");
             }
 
-            if (this._nativeHandle == IntPtr.Zero)
-            {
-                return;
-            }
-
-            ret = Interop.DataControl.SendDataChange(this._nativeHandle, type, changedData.SafeBundleHandle);
+            ret = Interop.DataControl.SendDataChange(this.DataID, type, changedData.SafeBundleHandle);
             if (ret != ResultType.Success)
             {
                 ErrorFactory.ThrowException(ret, false);