2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 // Licensed under the Flora License, Version 1.1 (the License);
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
8 // http://floralicense.org/license/
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an AS IS BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
18 * @file PhnLogsDetailItemProvider.cpp
19 * @brief Calllog detail item provider class
21 #include <FGraphics.h>
23 #include <FUiControl.h>
29 #include "PhnAppUtility.h"
30 #include "PhnLogsDetailItemProvider.h"
33 using namespace Tizen::Base;
34 using namespace Tizen::Base::Collection;
35 using namespace Tizen::App;
36 using namespace Tizen::Graphics;
37 using namespace Tizen::Locales;
38 using namespace Tizen::Media;
39 using namespace Tizen::Social;
40 using namespace Tizen::System;
42 const int LogsDetailItemProvider::ID_NAME_STRING = 100;
43 const int LogsDetailItemProvider::ID_NUMBER_STRING = 101;
44 const int LogsDetailItemProvider::ID_TIME_STRING = 102;
45 const int LogsDetailItemProvider::ID_CALLTYPE_BITMAP = 104;
47 const int LogsDetailItemProvider::X_TEXT_LINE1_ITEM = 16;
48 const int LogsDetailItemProvider::Y_TEXT_LINE1_ITEM = 10;
49 const int LogsDetailItemProvider::H_TEXT_LINE1_ITEM = 60;
50 const int LogsDetailItemProvider::W_TEXT_LINE1_ITEM = 560;
52 const int LogsDetailItemProvider::X_TEXT_LINE2_ITEM = 64;
53 const int LogsDetailItemProvider::Y_TEXT_LINE2_ITEM = 70;
54 const int LogsDetailItemProvider::H_TEXT_LINE2_ITEM = 48;
55 const int LogsDetailItemProvider::W_TEXT_LINE2_ITEM = 456;
57 const int LogsDetailItemProvider::X_TEXT_TIME_ITEM = 600;
58 const int LogsDetailItemProvider::Y_TEXT_TIME_ITEM = 70;
59 const int LogsDetailItemProvider::H_TEXT_TIME_ITEM = 48;
60 const int LogsDetailItemProvider::W_TEXT_TIME_ITEM = 168;
63 const int LogsDetailItemProvider::X_CALLTYPE_BITMAP_ITEM = 16;
64 const int LogsDetailItemProvider::Y_CALLTYPE_BITMAP_ITEM = 70 + 8;
65 const int LogsDetailItemProvider::H_CALLTYPE_BITMAP_ITEM = 32;
66 const int LogsDetailItemProvider::W_CALLTYPE_BITMAP_ITEM = 32;
68 static const int H_CALLLOGDETAIL_ITEM = 128;
69 static const int MAX_TWELVEHOUR_FORMAT = 12;
70 static const int MAX_TWELVEHOUR_FORMAT_LENGTH = 8;
71 static const int MAX_TWENTYFOUR_FORMAT_LENGTH = 6;
73 CallLogDetailGroup::CallLogDetailGroup()
75 __pGroupElements = null;
76 __groupTitleText = null;
79 CallLogDetailGroup::~CallLogDetailGroup()
85 CallLogDetailGroup::GetLogData(void)
87 return __pGroupElements;
91 CallLogDetailGroup::GetTitleText(void)
93 return __groupTitleText;
97 CallLogDetailGroup::SetLogData(ArrayList* pData)
99 __pGroupElements = pData;
103 CallLogDetailGroup::SetTitleText(String titleText)
105 __groupTitleText = titleText;
108 LogsDetailItemProvider::LogsDetailItemProvider()
110 __isEditMode = false;
111 __pCalllogDetailListByNumber = null;
112 __pCallLogDetailGroups = null;
113 __pLogPresentor = CalLogPresentationModel::GetInstance();
116 __itemHeight = 112.f;
119 LogsDetailItemProvider::~LogsDetailItemProvider()
121 if(__pCalllogDetailListByNumber != null)
123 __pCalllogDetailListByNumber->RemoveAll();
124 delete __pCalllogDetailListByNumber;
126 if(__pCallLogDetailGroups != null)
128 __pCallLogDetailGroups->RemoveAll();
129 delete __pCallLogDetailGroups;
130 __pCallLogDetailGroups = null;
135 LogsDetailItemProvider::CreateCalllogDetailGroups()
137 result r = E_FAILURE;
138 CallLogDetails* pCalllogInfo = null;
139 ArrayList* data = null;
141 DateTime calllogDate;
142 CallLogDetailGroup* pGroup = null;
143 int detailLogCount = 0;
146 if(__pCalllogDetailListByNumber == null)
148 __pCalllogDetailListByNumber =__pLogPresentor->GetCalllogListByNumValues();
151 if(__pCallLogDetailGroups != null)
153 ArrayList* pDetailCalllogList = null;
154 CallLogDetailGroup* pGroupInfo = null;
155 for(int index = 0; index < __pCallLogDetailGroups->GetCount(); index++)
157 pGroupInfo = static_cast<CallLogDetailGroup*>(__pCallLogDetailGroups->GetAt(index));
159 if(pGroupInfo != null)
161 pDetailCalllogList = pGroupInfo->GetLogData();
162 if(pDetailCalllogList != null)
164 pDetailCalllogList->RemoveAll();
165 delete pDetailCalllogList;
166 pDetailCalllogList = null;
172 __pCallLogDetailGroups->RemoveAll();
173 delete __pCallLogDetailGroups;
174 __pCallLogDetailGroups = null;
177 __pCallLogDetailGroups = new(std::nothrow) ArrayList();
178 if(__pCallLogDetailGroups == null)
182 r = __pCallLogDetailGroups->Construct();
185 delete __pCallLogDetailGroups;
186 __pCallLogDetailGroups = null;
190 detailLogCount =__pCalllogDetailListByNumber->GetCount();
191 GetCurrentDateTime(todaysDate);
192 calllogDate = todaysDate;
195 for(int index=0; index < detailLogCount; ++index)
199 pCalllogInfo = new (std::nothrow) CallLogDetails();
200 if(pCalllogInfo == null)
204 __pCalllogDetailListByNumber->GetAt(index, *pCalllogInfo);
205 pCalllogInfo->ConvertTimetoDateTime();
206 calllogDate = pCalllogInfo->GetDateTime();
208 int days = GetDaysDifferenceBetweenDates(calllogDate , todaysDate);
211 title.Append(AppUtility::GetResourceString(IDS_LOGS_TODAY));
215 title.Append(AppUtility::GetResourceString(IDS_LOGS_YESTERDAY));
219 title.Format(30,L"%d/%d/%d",calllogDate.GetDay(), calllogDate.GetMonth(), calllogDate.GetYear());
222 if(IsGroupPresent(title) == true)
224 //Group already present
225 pGroup = GetGroupWithTitle(title);
226 data = pGroup->GetLogData();
229 data = new ArrayList();
232 data->Add(*pCalllogInfo);
233 pGroup->SetLogData(data);
237 //Group not present in __pCallLogDetailGroups. So create a new group
238 pGroup = new(std::nothrow) CallLogDetailGroup();
243 data = new ArrayList();
245 data->Add(*pCalllogInfo);
246 pGroup->SetTitleText(title);
247 pGroup->SetLogData(data);
248 __pCallLogDetailGroups->Add(*pGroup);
254 LogsDetailItemProvider::GetCurrentDateTime(DateTime& dt)
257 LocaleManager localManager;
258 result r = E_FAILURE;
260 r = SystemTime::GetCurrentTime(UTC_TIME, dtNow);
261 localManager.Construct();
262 tz = localManager.GetSystemTimeZone();
263 dt = tz.UtcTimeToWallTime(dtNow);
267 LogsDetailItemProvider::GetDaysDifferenceBetweenDates(DateTime date1, DateTime date2)
269 TimeSpan oneDay(1,0,0,0);
270 TimeSpan timeOfDay = date2.GetTimeOfDay();
272 DateTime yesterday = date2;
273 yesterday.Subtract(timeOfDay);
274 yesterday.Subtract(oneDay);
276 DateTime today = date2;
277 today.Subtract(timeOfDay);
279 if (yesterday <= date1 && date1 < today)
283 else if (today <= date1 && date1 <= date2)
294 LogsDetailItemProvider::IsGroupPresent(String title)
300 CallLogDetailGroup* pGroupInfo = null;
301 for(int index = 0; index < __pCallLogDetailGroups->GetCount(); index++)
303 pGroupInfo = static_cast<CallLogDetailGroup*>(__pCallLogDetailGroups->GetAt(index));
304 if(pGroupInfo == null)
309 title1 = pGroupInfo->GetTitleText();
310 if( title.CompareTo(title1) == 0)
319 LogsDetailItemProvider::GetGroupWithTitle(String title)
321 CallLogDetailGroup* pGroupInfo = null;
322 for(int index = 0; index < __pCallLogDetailGroups->GetCount(); index++)
324 pGroupInfo = static_cast<CallLogDetailGroup*>(__pCallLogDetailGroups->GetAt(index));
325 if(pGroupInfo == null)
329 String title1 = pGroupInfo->GetTitleText();
330 if( title.CompareTo(title1) == 0)
339 LogsDetailItemProvider::GetGroupCount(void)
341 AppUtility::GetGlobalFontAndItemHeight(&__fontSize, &__itemHeight);
342 CreateCalllogDetailGroups();
343 if(__pCallLogDetailGroups != null)
345 return __pCallLogDetailGroups->GetCount();
351 LogsDetailItemProvider::GetItemCount(int groupIndex)
353 CallLogDetailGroup* group = null;
354 if(__pCallLogDetailGroups != null)
356 group = static_cast<CallLogDetailGroup*>(__pCallLogDetailGroups->GetAt(groupIndex));
359 return (group->GetLogData())->GetCount();
365 Tizen::Ui::Controls::GroupItem*
366 LogsDetailItemProvider::CreateGroupItem(int groupIndex, int itemWidth)
368 AppResource* pAppResource = App::GetInstance()->GetAppResource();
369 GroupItem* pItem = new GroupItem();
374 pItem->Construct(Dimension(itemWidth, 48));
376 Bitmap* pBitmap = null;
377 pBitmap = pAppResource->GetBitmapN(IDB_CALLOG_LIST_BG,BITMAP_PIXEL_FORMAT_ARGB8888);
379 CallLogDetailGroup* group = null;
380 if(__pCallLogDetailGroups != null)
382 group = static_cast<CallLogDetailGroup*>(__pCallLogDetailGroups->GetAt(groupIndex));
385 pItem->SetElement(group->GetTitleText(), pBitmap);
401 LogsDetailItemProvider::DeleteGroupItem(int groupIndex, Tizen::Ui::Controls::GroupItem* pItem, int itemWidth)
408 Tizen::Ui::Controls::ListItemBase*
409 LogsDetailItemProvider::CreateItem(int groupIndex, int itemIndex, int itemWidth)
411 CallLogDetailGroup* pGroup = null;
412 ArrayList* pCalllogList = null;
413 CallLogDetails* calllogInfo = null;
416 String dateText(L"");
417 DateTime calllogDate;
418 CallLogType type = CALL_LOG_TYPE_MAX;
421 Bitmap* pBitmap = null;
425 if(__pCallLogDetailGroups != null)
427 pGroup = static_cast<CallLogDetailGroup*>(__pCallLogDetailGroups->GetAt(groupIndex));
430 pCalllogList = pGroup->GetLogData();
431 if(pCalllogList != null)
433 calllogInfo = static_cast<CallLogDetails*>(pCalllogList->GetAt(itemIndex));
437 if(calllogInfo != null)
439 duration = calllogInfo->GetDuration();
440 type = calllogInfo->GetCalllogType();
441 calllogDate = calllogInfo->GetDateTime();
442 if(type == CALL_LOG_TYPE_VOICE_MISSED_UNSEEN)
444 __pLogPresentor->SetMissedCallSeenStatus(calllogInfo);
448 Bitmap* pTypeBitmap=null;
449 GetCallogIconBitmap(type,pBitmap,pTypeBitmap,typeText);
451 GetTimeText(calllogDate,dateText);
453 ListAnnexStyle style = LIST_ANNEX_STYLE_NORMAL;
455 TextElement* textElement = new (std::nothrow) TextElement();
457 String appPath = (Application::GetInstance())->GetAppRootPath();
458 CustomItem* pItem = new (std::nothrow) CustomItem();
459 if (__isEditMode == true)
461 style = LIST_ANNEX_STYLE_MARK;
463 pItem->Construct(Dimension(itemWidth, __itemHeight), style);
465 pItem->AddElement(Rectangle(X_TEXT_LINE1_ITEM, Y_TEXT_LINE1_ITEM, W_TEXT_LINE1_ITEM, __fontSize + 16), ID_NAME_STRING, dateText,__fontSize, Color::GetColor(COLOR_ID_BLACK), Color::GetColor(COLOR_ID_BLACK), Color::GetColor(COLOR_ID_BLACK), false);
466 pItem->AddElement(Rectangle(X_TEXT_LINE2_ITEM, Y_TEXT_LINE1_ITEM + __fontSize + 16, W_TEXT_LINE2_ITEM, H_TEXT_LINE2_ITEM), ID_NUMBER_STRING, typeText.GetPointer(), 32, Color::GetColor(COLOR_ID_GREY), Color::GetColor(COLOR_ID_GREY), Color::GetColor(COLOR_ID_GREY), false);
468 if (__isEditMode == true)
470 pItem->AddElement(Rectangle(X_TEXT_LINE1_ITEM, Y_TEXT_LINE1_ITEM, W_TEXT_LINE1_ITEM - 76, __fontSize + 16), ID_NAME_STRING, dateText, false);
471 pItem->AddElement(Rectangle(X_TEXT_LINE2_ITEM, Y_TEXT_LINE1_ITEM + __fontSize + 16, W_TEXT_LINE2_ITEM - 76, H_TEXT_LINE2_ITEM), ID_NUMBER_STRING, typeText.GetPointer(), 32, Color::GetColor(COLOR_ID_GREY), Color::GetColor(COLOR_ID_GREY), Color::GetColor(COLOR_ID_GREY), false);
474 if(IsTimeToBeDisplayed(type) == true)
476 EnrichedText* text = new (std::nothrow) EnrichedText();
477 text->Construct(Dimension(W_TEXT_TIME_ITEM, H_TEXT_TIME_ITEM));
478 text->SetHorizontalAlignment(TEXT_ALIGNMENT_RIGHT);
479 text->SetVerticalAlignment(TEXT_ALIGNMENT_MIDDLE);
484 durationText.Format(10,L"%02d:%02d:%02d", hr, min, sec);
485 textElement->Construct(durationText);
487 font.Construct(FONT_STYLE_PLAIN, 32);
488 textElement->SetFont(font);
489 textElement->SetTextColor(Color::GetColor(COLOR_ID_GREY));
490 text->Add(*textElement);
492 if (__isEditMode == false)
494 pItem->AddElement(Rectangle((itemWidth - (X_TEXT_TIME_ITEM_RIGHT_MARGIN-76)), Y_TEXT_LINE1_ITEM + __fontSize + 16, W_TEXT_TIME_ITEM, H_TEXT_TIME_ITEM), ID_TIME_STRING, *text);
498 pItem->AddElement(Rectangle((itemWidth - (X_TEXT_TIME_ITEM_RIGHT_MARGIN-165)) - 165, Y_TEXT_LINE1_ITEM + __fontSize + 16, W_TEXT_TIME_ITEM, H_TEXT_TIME_ITEM), ID_TIME_STRING, *text);
505 if (pTypeBitmap != null)
507 pItem->AddElement(Rectangle(X_CALLTYPE_BITMAP_ITEM, Y_TEXT_LINE1_ITEM + __fontSize + 20, W_CALLTYPE_BITMAP_ITEM, H_CALLTYPE_BITMAP_ITEM), ID_CALLTYPE_BITMAP, *pTypeBitmap);
513 if (__isEditMode == false)
515 pItem->AddElement(Rectangle((itemWidth - X_LOGCALL_BITMAP_RIGHT_MARGIN), Y_LOGCALL_BITMAP_ITEM, W_LOGCALL_BITMAP_ITEM, H_LOGCALL_BITMAP_ITEM), ID_LOGCALL_BITMAP, *pBitmap);
519 pItem->AddElement(Rectangle((itemWidth - X_LOGCALL_BITMAP_RIGHT_MARGIN) - 90, Y_LOGCALL_BITMAP_ITEM, W_LOGCALL_BITMAP_ITEM, H_LOGCALL_BITMAP_ITEM), ID_LOGCALL_BITMAP, *pBitmap);
530 LogsDetailItemProvider::IsTimeToBeDisplayed(CallLogType type)
534 case CALL_LOG_TYPE_VOICE_REJECTED:
535 case CALL_LOG_TYPE_VOICE_MISSED:
536 case CALL_LOG_TYPE_VOICE_BLOCKED:
537 case CALL_LOG_TYPE_VIDEO_REJECTED:
538 case CALL_LOG_TYPE_VIDEO_BLOCKED:
539 case CALL_LOG_TYPE_VIDEO_MISSED:
544 case CALL_LOG_TYPE_VOICE_INCOMING:
545 case CALL_LOG_TYPE_VOICE_OUTGOING:
546 case CALL_LOG_TYPE_VIDEO_INCOMING:
547 case CALL_LOG_TYPE_VIDEO_OUTGOING:
552 case CALL_LOG_TYPE_SMS_INCOMING:
553 case CALL_LOG_TYPE_SMS_OUTGOING:
554 case CALL_LOG_TYPE_SMS_BLOCKED:
555 case CALL_LOG_TYPE_MMS_INCOMING:
556 case CALL_LOG_TYPE_MMS_OUTGOING:
557 case CALL_LOG_TYPE_MMS_BLOCKED:
558 case CALL_LOG_TYPE_EMAIL_INCOMING:
559 case CALL_LOG_TYPE_EMAIL_OUTGOING:
573 LogsDetailItemProvider::GetCallogIconBitmap(CallLogType logType,Bitmap*& iconType, Bitmap*& iconArrow, String& text)
575 AppResource* pAppResource = App::GetInstance()->GetAppResource();
578 case CALL_LOG_TYPE_VOICE_INCOMING:
580 iconType = pAppResource->GetBitmapN(IDB_LOG_CALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
581 iconArrow = pAppResource->GetBitmapN(IDB_LOG_RECEIVEDCALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
582 text.Append(AppUtility::GetResourceString(IDS_CALLLOG_RECEIVED));
586 case CALL_LOG_TYPE_VOICE_OUTGOING:
588 iconType = pAppResource->GetBitmapN(IDB_LOG_CALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
589 iconArrow = pAppResource->GetBitmapN(IDB_LOG_DIALEDCALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
590 text.Append(AppUtility::GetResourceString(IDS_CALLLOG_OUTGOING));
593 case CALL_LOG_TYPE_VOICE_REJECTED:
595 iconType = pAppResource->GetBitmapN(IDB_LOG_CALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
596 iconArrow = pAppResource->GetBitmapN(IDB_LOG_BLOCKEDCALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
597 text.Append(AppUtility::GetResourceString(IDS_CALLLOG_REJECTED));
600 case CALL_LOG_TYPE_VOICE_MISSED:
602 iconType = pAppResource->GetBitmapN(IDB_LOG_CALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
603 iconArrow = pAppResource->GetBitmapN(IDB_LOG_MISSEDCALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
604 text.Append(AppUtility::GetResourceString(IDS_CALLLOG_MISSED));
607 case CALL_LOG_TYPE_VOICE_BLOCKED:
609 iconType = pAppResource->GetBitmapN(IDB_LOG_CALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
610 iconArrow = pAppResource->GetBitmapN(IDB_LOG_BLOCKEDCALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
611 text.Append(AppUtility::GetResourceString(IDS_CALLLOG_MISSED));
615 case CALL_LOG_TYPE_VIDEO_INCOMING:
617 iconType = pAppResource->GetBitmapN(IDB_LOG_VIDEO_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
618 iconArrow = pAppResource->GetBitmapN(IDB_LOG_RECEIVEDCALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
619 text.Append(AppUtility::GetResourceString(IDS_CALLLOG_RECEIVED));
622 case CALL_LOG_TYPE_VIDEO_OUTGOING:
624 iconType = pAppResource->GetBitmapN(IDB_LOG_VIDEO_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
625 iconArrow = pAppResource->GetBitmapN(IDB_LOG_DIALEDCALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
626 text.Append(AppUtility::GetResourceString(IDS_CALLLOG_OUTGOING));
629 case CALL_LOG_TYPE_VIDEO_MISSED:
630 case CALL_LOG_TYPE_VIDEO_REJECTED:
632 iconType = pAppResource->GetBitmapN(IDB_LOG_VIDEO_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
633 iconArrow = pAppResource->GetBitmapN(IDB_LOG_MISSEDCALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
634 text.Append(AppUtility::GetResourceString(IDS_CALLLOG_MISSED));
637 case CALL_LOG_TYPE_VIDEO_BLOCKED:
639 iconType = pAppResource->GetBitmapN(IDB_LOG_VIDEO_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
640 iconArrow = pAppResource->GetBitmapN(IDB_LOG_BLOCKEDCALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
641 text.Append(AppUtility::GetResourceString(IDS_CALLLOG_MISSED));
645 case CALL_LOG_TYPE_SMS_INCOMING:
647 iconType = pAppResource->GetBitmapN(IDB_LOG_SMS_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
648 iconArrow = pAppResource->GetBitmapN(IDB_LOG_RECEIVEDCALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
649 text.Append(AppUtility::GetResourceString(IDS_CALLLOG_RECEIVED_MSG));
652 case CALL_LOG_TYPE_SMS_OUTGOING:
654 iconType = pAppResource->GetBitmapN(IDB_LOG_SMS_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
655 iconArrow = pAppResource->GetBitmapN(IDB_LOG_DIALEDCALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
656 text.Append(AppUtility::GetResourceString(IDS_CALLLOG_SENT_MSG));
660 case CALL_LOG_TYPE_SMS_BLOCKED:
662 iconType = pAppResource->GetBitmapN(IDB_LOG_SMS_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
663 iconArrow = pAppResource->GetBitmapN(IDB_LOG_BLOCKEDCALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
664 text.Append(AppUtility::GetResourceString(IDS_CALLLOG_RECEIVED_MSG));
668 case CALL_LOG_TYPE_MMS_INCOMING:
670 iconType = pAppResource->GetBitmapN(IDB_LOG_MMS_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
671 iconArrow = pAppResource->GetBitmapN(IDB_LOG_RECEIVEDCALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
672 text.Append(AppUtility::GetResourceString(IDS_CALLLOG_RECEIVED_MSG));
675 case CALL_LOG_TYPE_MMS_OUTGOING:
677 iconType = pAppResource->GetBitmapN(IDB_LOG_MMS_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
678 iconArrow = pAppResource->GetBitmapN(IDB_LOG_DIALEDCALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
679 text.Append(AppUtility::GetResourceString(IDS_CALLLOG_SENT_MSG));
682 case CALL_LOG_TYPE_MMS_BLOCKED:
684 iconType = pAppResource->GetBitmapN(IDB_LOG_MMS_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
685 iconArrow = pAppResource->GetBitmapN(IDB_LOG_BLOCKEDCALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
686 text.Append(AppUtility::GetResourceString(IDS_CALLLOG_RECEIVED_MSG));
689 case CALL_LOG_TYPE_EMAIL_INCOMING:
691 iconType = pAppResource->GetBitmapN(IDB_LOG_SMS_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
692 iconArrow = pAppResource->GetBitmapN(IDB_LOG_RECEIVEDCALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
693 text.Append(AppUtility::GetResourceString(IDS_CALLLOG_RECEIVED_MSG));
696 case CALL_LOG_TYPE_EMAIL_OUTGOING:
698 iconType = pAppResource->GetBitmapN(IDB_LOG_SMS_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
699 iconArrow = pAppResource->GetBitmapN(IDB_LOG_DIALEDCALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
700 text.Append(AppUtility::GetResourceString(IDS_CALLLOG_SENT_MSG));
705 iconType = pAppResource->GetBitmapN(IDB_LOG_CALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
706 iconArrow = pAppResource->GetBitmapN(IDB_LOG_MISSEDCALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
707 text.Append(AppUtility::GetResourceString(IDS_CALLLOG_MISSED));
714 LogsDetailItemProvider::DeleteItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth)
722 LogsDetailItemProvider::SetViewMode(bool mode)
728 LogsDetailItemProvider::ResetDetailsList(void)
730 delete __pCalllogDetailListByNumber;
731 __pCalllogDetailListByNumber = null;
732 //reset __pCallLogDetailGroups also
736 LogsDetailItemProvider::GetItemAtGroupIndex(int groupIndex, int itemIndex, CallLogDetails** pCalllogDetails)
738 if(__pCallLogDetailGroups != null)
740 CallLogDetailGroup* pGroup = null;
741 ArrayList* list = null;
742 pGroup = static_cast<CallLogDetailGroup*>(__pCallLogDetailGroups->GetAt(groupIndex));
745 list = pGroup->GetLogData();
746 *pCalllogDetails = static_cast<CallLogDetails*>(list->GetAt(itemIndex));
752 LogsDetailItemProvider::GetTimeText(DateTime calllogDate,String& dateText)
754 int hour = calllogDate.GetHour();
755 String key(L"24HourFormatSelected");
756 bool dateFormat24 = true;
759 SettingInfo::GetValue(key, dateFormat24);
760 if (dateFormat24 == false)
762 if (hour > MAX_TWELVEHOUR_FORMAT)
764 hour -= MAX_TWELVEHOUR_FORMAT;
765 amPm.Append(AppUtility::GetResourceString(IDS_PM_TIME));
767 else if (hour < MAX_TWELVEHOUR_FORMAT)
769 amPm.Append(AppUtility::GetResourceString(IDS_AM_TIME));
771 else if (hour == MAX_TWELVEHOUR_FORMAT)
773 amPm.Append(AppUtility::GetResourceString(IDS_PM_TIME));
775 dateText.Format(MAX_TWELVEHOUR_FORMAT_LENGTH,L"%02d:%02d%ls", hour, calllogDate.GetMinute(), amPm.GetPointer());
779 dateText.Format(MAX_TWENTYFOUR_FORMAT_LENGTH,L"%02d:%02d", calllogDate.GetHour(), calllogDate.GetMinute());