Fix Pims.Calendar (#502)
authorsameer prakash pradhan <sameer.p.pradhan@gmail.com>
Thu, 4 Oct 2018 06:51:38 +0000 (12:21 +0530)
committerWonYoung Choi <wy80.choi@samsung.com>
Thu, 4 Oct 2018 06:51:38 +0000 (15:51 +0900)
src/Tizen.Pims.Calendar/Interop/Interop.Filter.cs
src/Tizen.Pims.Calendar/Interop/Interop.Record.cs
src/Tizen.Pims.Calendar/Tizen.Pims.Calendar/CalendarFilter.cs
src/Tizen.Pims.Calendar/Tizen.Pims.Calendar/CalendarRecord.cs

index daca142..3e4659a 100644 (file)
@@ -35,7 +35,7 @@ internal static partial class Interop
         [DllImport(Libraries.Calendar, EntryPoint = "calendar_filter_add_lli")]
             internal static extern int AddLong(IntPtr filterHandle, uint propertyId, IntegerMatchType match, long value);
         [DllImport(Libraries.Calendar, EntryPoint = "calendar_filter_add_caltime")]
-            internal static extern int AddCalendarTime(IntPtr filterHandle, uint propertyId, IntegerMatchType match, Interop.Record.DateTime value);
+            internal static extern int AddCalendarTime(IntPtr filterHandle, uint propertyId, IntegerMatchType match, IntPtr value);
         [DllImport(Libraries.Calendar, EntryPoint = "calendar_filter_add_filter")]
             internal static extern int AddFilter(IntPtr parentFilterHandle, IntPtr childFilterHandle);
         [DllImport(Libraries.Calendar, EntryPoint = "calendar_filter_add_operator")]
index 771bf1f..d4ccf6b 100644 (file)
@@ -21,26 +21,6 @@ internal static partial class Interop
 {
     internal static partial class Record
     {
-        [StructLayout(LayoutKind.Sequential)]
-        internal unsafe struct LOCAL
-        {
-            internal int year;
-            internal int month;
-            internal int mday;
-            internal int hour;
-            internal int minute;
-            internal int second;
-        };
-        [StructLayout(LayoutKind.Explicit)]
-            internal struct DateTime
-            {
-                [FieldOffset(0)]
-                internal int type;
-                [FieldOffset(8)]
-                internal long utime;
-                [FieldOffset(8)]
-                internal LOCAL local;
-            };
 
         [DllImport(Libraries.Calendar, EntryPoint = "calendar_record_create")]
             internal static extern int Create(string uri, out IntPtr recordHandle);
@@ -61,7 +41,7 @@ internal static partial class Interop
         [DllImport(Libraries.Calendar, EntryPoint = "calendar_record_get_lli")]
             internal static extern int GetLli(IntPtr recordHandle, uint propertyId, out long value);
         [DllImport(Libraries.Calendar, EntryPoint = "calendar_record_get_caltime")]
-            internal static extern int GetCalendarTime(IntPtr recordHandle, uint propertyId, out DateTime value);
+            internal static extern int GetCalendarTime(IntPtr recordHandle, uint propertyId, out IntPtr value);
         [DllImport(Libraries.Calendar, EntryPoint = "calendar_record_set_str")]
             internal static extern int SetString(IntPtr recordHandle, uint propertyId, string str);
         [DllImport(Libraries.Calendar, EntryPoint = "calendar_record_set_int")]
@@ -71,7 +51,7 @@ internal static partial class Interop
         [DllImport(Libraries.Calendar, EntryPoint = "calendar_record_set_lli")]
             internal static extern int SetLli(IntPtr recordHandle, uint propertyId, long value);
         [DllImport(Libraries.Calendar, EntryPoint = "calendar_record_set_caltime")]
-            internal static extern int SetCalendarTime(IntPtr recordHandle, uint propertyId, DateTime value);
+            internal static extern int SetCalendarTime(IntPtr recordHandle, uint propertyId, IntPtr value);
         [DllImport(Libraries.Calendar, EntryPoint = "calendar_record_add_child_record")]
             internal static extern int AddChildRecord(IntPtr recordHandle, uint propertyId, IntPtr childHandle);
         [DllImport(Libraries.Calendar, EntryPoint = "calendar_record_remove_child_record")]
@@ -82,5 +62,50 @@ internal static partial class Interop
             internal static extern int GetChildRecordPointer(IntPtr recordHandle, uint propertyId, int index, out IntPtr childHandle);
         [DllImport(Libraries.Calendar, EntryPoint = "calendar_record_clone_child_record_list")]
             internal static extern int CloneChildRecordList(IntPtr childRecordHandle, uint propertyId, out IntPtr listHandle);
+
+        [DllImport(Libraries.Calendar, EntryPoint = "cal_caltime_create")]
+        internal static extern IntPtr CreateCalTime();
+        [DllImport(Libraries.Calendar, EntryPoint = "cal_caltime_destroy")]
+        internal static extern void DestroyCalTime(IntPtr caltime);
+        [DllImport(Libraries.Calendar, EntryPoint = "cal_caltime_get_local_type")]
+        internal static extern int GetCalTimeType(IntPtr caltime);
+        [DllImport(Libraries.Calendar, EntryPoint = "cal_caltime_get_local_utime")]
+        internal static extern long GetCalTimeUtime(IntPtr caltime);
+        [DllImport(Libraries.Calendar, EntryPoint = "cal_caltime_get_local_year")]
+        internal static extern int GetCalTimeLocalYear(IntPtr caltime);
+        [DllImport(Libraries.Calendar, EntryPoint = "cal_caltime_get_local_month")]
+        internal static extern int GetCalTimeLocalMonth(IntPtr caltime);
+        [DllImport(Libraries.Calendar, EntryPoint = "cal_caltime_get_local_mday")]
+        internal static extern int GetCalTimeLocalMday(IntPtr caltime);
+        [DllImport(Libraries.Calendar, EntryPoint = "cal_caltime_get_local_hour")]
+        internal static extern int GetCalTimeLocalHour(IntPtr caltime);
+        [DllImport(Libraries.Calendar, EntryPoint = "cal_caltime_get_local_minute")]
+        internal static extern int GetCalTimeLocalMinute(IntPtr caltime);
+        [DllImport(Libraries.Calendar, EntryPoint = "cal_caltime_get_local_second")]
+        internal static extern int GetCalTimeLocalSecond(IntPtr caltime);
+
+
+        [DllImport(Libraries.Calendar, EntryPoint = "cal_caltime_set_local_type")]
+        internal static extern int SetCalTimeType(IntPtr caltime, int type);
+        [DllImport(Libraries.Calendar, EntryPoint = "cal_caltime_set_local_utime")]
+        internal static extern int SetCalTimeUtime(IntPtr caltime, long utime);
+        [DllImport(Libraries.Calendar, EntryPoint = "cal_caltime_set_local_year")]
+        internal static extern int SetCalTimeLocalYear(IntPtr caltime, int year);
+        [DllImport(Libraries.Calendar, EntryPoint = "cal_caltime_set_local_month")]
+        internal static extern int SetCalTimeLocalMonth(IntPtr caltime, int month);
+        [DllImport(Libraries.Calendar, EntryPoint = "cal_caltime_set_local_mday")]
+        internal static extern int SetCalTimeLocalMday(IntPtr caltime, int mday);
+        [DllImport(Libraries.Calendar, EntryPoint = "cal_caltime_set_local_hour")]
+        internal static extern int SetCalTimeLocalHour(IntPtr caltime, int hour);
+        [DllImport(Libraries.Calendar, EntryPoint = "cal_caltime_set_local_minute")]
+        internal static extern int SetCalTimeLocalMinute(IntPtr caltime, int minute);
+        [DllImport(Libraries.Calendar, EntryPoint = "cal_caltime_set_local_second")]
+        internal static extern int SetCalTimeLocalSecond(IntPtr caltime, int second);
+
+
+        [DllImport(Libraries.Calendar, EntryPoint = "cal_caltime_set_caltime")]
+        internal static extern int SetCalTime(IntPtr recordHandle, uint propertyId, IntPtr value);
+        [DllImport(Libraries.Calendar, EntryPoint = "cal_caltime_get_caltime")]
+        internal static extern int GetCalTime(IntPtr recordHandle, uint propertyId, out IntPtr value);
     }
 }
index 54f0a17..21fc3e8 100644 (file)
@@ -178,7 +178,7 @@ namespace Tizen.Pims.Calendar
                 throw CalendarErrorFactory.GetException(error);
             }
 
-            Interop.Record.DateTime time = CalendarRecord.ConvertCalendarTimeToStruct(matchValue);
+            IntPtr time = CalendarRecord.ConvertCalendarTimeToStruct(matchValue);
             error = Interop.Filter.AddCalendarTime(_filterHandle, propertyId, matchType, time);
             if (CalendarError.None != (CalendarError)error)
             {
@@ -447,7 +447,7 @@ namespace Tizen.Pims.Calendar
                 throw CalendarErrorFactory.GetException(error);
             }
 
-            Interop.Record.DateTime time = CalendarRecord.ConvertCalendarTimeToStruct(matchValue);
+            IntPtr time = CalendarRecord.ConvertCalendarTimeToStruct(matchValue);
             error = Interop.Filter.AddCalendarTime(_filterHandle, propertyId, matchType, time);
             if (CalendarError.None != (CalendarError)error)
             {
index d94608c..3813683 100644 (file)
@@ -156,41 +156,46 @@ namespace Tizen.Pims.Calendar
         }
 #endregion
 
-        internal static Interop.Record.DateTime ConvertCalendarTimeToStruct(CalendarTime value)
+        internal static IntPtr ConvertCalendarTimeToStruct(CalendarTime value)
         {
-            Interop.Record.DateTime time = new Interop.Record.DateTime();
-            time.type = value._type;
+            Console.WriteLine("convert calendar");
+            IntPtr caltime = Interop.Record.CreateCalTime();
+            Interop.Record.SetCalTimeType(caltime, value._type);
 
             if ((int)CalendarTime.Type.Utc == value._type)
             {
                 DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0);
-                time.utime = (value.UtcTime.Ticks - epoch.Ticks) / 10000000;
+                Interop.Record.SetCalTimeUtime(caltime, (value.UtcTime.Ticks - epoch.Ticks) / 10_000_000);
+                //Log.Debug(Globals.LogTag, "Sameer local time is if:" + Interop.Record.GetCalTimeLocalMonth(caltime) + "," + Interop.Record.GetCalTimeLocalMday(caltime) + "," + Interop.Record.GetCalTimeLocalHour(caltime) + "," + Interop.Record.GetCalTimeLocalMinute(caltime));
+
             }
             else
             {
-                time.local.year = value.LocalTime.Year;
-                time.local.month = value.LocalTime.Month;
-                time.local.mday = value.LocalTime.Day;
-                time.local.hour = value.LocalTime.Hour;
-                time.local.minute = value.LocalTime.Minute;
-                time.local.second = value.LocalTime.Second;
+                Interop.Record.SetCalTimeLocalYear(caltime, value.LocalTime.Year);
+                Interop.Record.SetCalTimeLocalMonth(caltime, value.LocalTime.Month);
+                Interop.Record.SetCalTimeLocalMday(caltime, value.LocalTime.Day);
+                Interop.Record.SetCalTimeLocalHour(caltime, value.LocalTime.Hour);
+                Interop.Record.SetCalTimeLocalMinute(caltime, value.LocalTime.Minute);
+                Interop.Record.SetCalTimeLocalSecond(caltime, value.LocalTime.Second);
+                //Log.Debug(Globals.LogTag, "Sameer local time is:" + Interop.Record.GetCalTimeLocalHour(caltime) + "," + Interop.Record.GetCalTimeLocalMinute(caltime));
             }
-            return time;
+            return caltime;
         }
 
-        internal static CalendarTime ConvertIntPtrToCalendarTime(Interop.Record.DateTime time)
+        internal static CalendarTime ConvertIntPtrToCalendarTime(IntPtr caltime)
         {
             CalendarTime value;
-            if ((int)CalendarTime.Type.Utc == time.type)
+            if ((int)CalendarTime.Type.Utc == Interop.Record.GetCalTimeType(caltime))
             {
                 DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0);
-                value = new CalendarTime(time.utime * 10000000 + epoch.Ticks);
+                value = new CalendarTime(Interop.Record.GetCalTimeUtime(caltime) * 10_000_000 + epoch.Ticks);
             }
             else
             {
-                value = new CalendarTime(time.local.year, time.local.month, time.local.mday, time.local.hour, time.local.minute, time.local.second);
+                value = new CalendarTime(Interop.Record.GetCalTimeLocalYear(caltime), Interop.Record.GetCalTimeLocalMonth(caltime), Interop.Record.GetCalTimeLocalMday(caltime),
+                    Interop.Record.GetCalTimeLocalHour(caltime), Interop.Record.GetCalTimeLocalMinute(caltime), Interop.Record.GetCalTimeLocalSecond(caltime));
             }
-            value._type = time.type;
+            value._type = Interop.Record.GetCalTimeType(caltime);
             return value;
         }
 
@@ -290,8 +295,8 @@ namespace Tizen.Pims.Calendar
             }
             else if (typeof(T) == typeof(CalendarTime))
             {
-                Interop.Record.DateTime time;
-                int error = Interop.Record.GetCalendarTime(_recordHandle, propertyId, out time);
+                IntPtr time;
+                int error = Interop.Record.GetCalTime(_recordHandle, propertyId, out time);
                 if (CalendarError.None != (CalendarError)error)
                 {
                     Log.Error(Globals.LogTag, "Get CalendarTime Failed [" + error + "]" + String.Format("{0:X}", propertyId));
@@ -362,8 +367,10 @@ namespace Tizen.Pims.Calendar
             else if (typeof(T) == typeof(CalendarTime))
             {
                 CalendarTime time = (CalendarTime)Convert.ChangeType(value, typeof(CalendarTime));
-                Interop.Record.DateTime val = ConvertCalendarTimeToStruct(time);
-                int error = Interop.Record.SetCalendarTime(_recordHandle, propertyId, val);
+                //Interop.Record.DateTime val = ConvertCalendarTimeToStruct(time);
+                IntPtr val = ConvertCalendarTimeToStruct(time);
+                //int error = Interop.Record.SetCalendarTime(_recordHandle, propertyId, val);
+                int error = Interop.Record.SetCalTime(_recordHandle, propertyId, val);
                 if (CalendarError.None != (CalendarError)error)
                 {
                     Log.Error(Globals.LogTag, "Set CalendarTime Failed [" + error + "]" + String.Format("{0:X}", propertyId));