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;
129 LogsDetailItemProvider::CreateCalllogDetailGroups()
131 result r = E_FAILURE;
132 CallLogDetails* pCalllogInfo = null;
133 ArrayList* data = null;
135 DateTime calllogDate;
136 CallLogDetailGroup* pGroup = null;
137 int detailLogCount = 0;
140 if(__pCalllogDetailListByNumber == null)
142 __pCalllogDetailListByNumber =__pLogPresentor->GetCalllogListByNumValues();
145 if(__pCallLogDetailGroups != null)
147 ArrayList* pDetailCalllogList = null;
148 CallLogDetailGroup* pGroupInfo = null;
149 for(int index = 0; index < __pCallLogDetailGroups->GetCount(); index++)
151 pGroupInfo = static_cast<CallLogDetailGroup*>(__pCallLogDetailGroups->GetAt(index));
153 if(pGroupInfo != null)
155 pDetailCalllogList = pGroupInfo->GetLogData();
156 if(pDetailCalllogList != null)
158 pDetailCalllogList->RemoveAll();
159 delete pDetailCalllogList;
160 pDetailCalllogList = null;
166 __pCallLogDetailGroups->RemoveAll();
167 delete __pCallLogDetailGroups;
168 __pCallLogDetailGroups = null;
171 __pCallLogDetailGroups = new(std::nothrow) ArrayList();
172 if(__pCallLogDetailGroups == null)
176 r = __pCallLogDetailGroups->Construct();
179 delete __pCallLogDetailGroups;
180 __pCallLogDetailGroups = null;
184 detailLogCount =__pCalllogDetailListByNumber->GetCount();
185 GetCurrentDateTime(todaysDate);
186 calllogDate = todaysDate;
189 for(int index=0; index < detailLogCount; ++index)
193 pCalllogInfo = new (std::nothrow) CallLogDetails();
194 if(pCalllogInfo == null)
198 __pCalllogDetailListByNumber->GetAt(index, *pCalllogInfo);
199 pCalllogInfo->ConvertTimetoDateTime();
200 calllogDate = pCalllogInfo->GetDateTime();
202 int days = GetDaysDifferenceBetweenDates(calllogDate , todaysDate);
205 title.Append(AppUtility::GetResourceString(IDS_LOGS_TODAY));
209 title.Append(AppUtility::GetResourceString(IDS_LOGS_YESTERDAY));
213 title.Format(30,L"%d/%d/%d",calllogDate.GetDay(), calllogDate.GetMonth(), calllogDate.GetYear());
216 if(IsGroupPresent(title) == true)
218 //Group already present
219 pGroup = GetGroupWithTitle(title);
220 data = pGroup->GetLogData();
223 data = new ArrayList();
226 data->Add(*pCalllogInfo);
227 pGroup->SetLogData(data);
231 //Group not present in __pCallLogDetailGroups. So create a new group
232 pGroup = new(std::nothrow) CallLogDetailGroup();
237 data = new ArrayList();
239 data->Add(*pCalllogInfo);
240 pGroup->SetTitleText(title);
241 pGroup->SetLogData(data);
242 __pCallLogDetailGroups->Add(*pGroup);
248 LogsDetailItemProvider::GetCurrentDateTime(DateTime& dt)
251 LocaleManager localManager;
252 result r = E_FAILURE;
254 r = SystemTime::GetCurrentTime(UTC_TIME, dtNow);
255 localManager.Construct();
256 tz = localManager.GetSystemTimeZone();
257 dt = tz.UtcTimeToWallTime(dtNow);
261 LogsDetailItemProvider::GetDaysDifferenceBetweenDates(DateTime date1, DateTime date2)
263 TimeSpan oneDay(1,0,0,0);
264 TimeSpan timeOfDay = date2.GetTimeOfDay();
266 DateTime yesterday = date2;
267 yesterday.Subtract(timeOfDay);
268 yesterday.Subtract(oneDay);
270 DateTime today = date2;
271 today.Subtract(timeOfDay);
273 if (yesterday <= date1 && date1 < today)
277 else if (today <= date1 && date1 <= date2)
288 LogsDetailItemProvider::IsGroupPresent(String title)
294 CallLogDetailGroup* pGroupInfo = null;
295 for(int index = 0; index < __pCallLogDetailGroups->GetCount(); index++)
297 pGroupInfo = static_cast<CallLogDetailGroup*>(__pCallLogDetailGroups->GetAt(index));
298 if(pGroupInfo == null)
303 title1 = pGroupInfo->GetTitleText();
304 if( title.CompareTo(title1) == 0)
313 LogsDetailItemProvider::GetGroupWithTitle(String title)
315 CallLogDetailGroup* pGroupInfo = null;
316 for(int index = 0; index < __pCallLogDetailGroups->GetCount(); index++)
318 pGroupInfo = static_cast<CallLogDetailGroup*>(__pCallLogDetailGroups->GetAt(index));
319 if(pGroupInfo == null)
323 String title1 = pGroupInfo->GetTitleText();
324 if( title.CompareTo(title1) == 0)
333 LogsDetailItemProvider::GetGroupCount(void)
335 AppUtility::GetGlobalFontAndItemHeight(&__fontSize, &__itemHeight);
336 CreateCalllogDetailGroups();
337 if(__pCallLogDetailGroups != null)
339 return __pCallLogDetailGroups->GetCount();
345 LogsDetailItemProvider::GetItemCount(int groupIndex)
347 CallLogDetailGroup* group = null;
348 if(__pCallLogDetailGroups != null)
350 group = static_cast<CallLogDetailGroup*>(__pCallLogDetailGroups->GetAt(groupIndex));
353 return (group->GetLogData())->GetCount();
359 Tizen::Ui::Controls::GroupItem*
360 LogsDetailItemProvider::CreateGroupItem(int groupIndex, int itemWidth)
362 AppResource* pAppResource = App::GetInstance()->GetAppResource();
363 GroupItem* pItem = new GroupItem();
368 pItem->Construct(Dimension(itemWidth, 48));
370 Bitmap* pBitmap = null;
371 pBitmap = pAppResource->GetBitmapN(IDB_CALLOG_LIST_BG,BITMAP_PIXEL_FORMAT_ARGB8888);
373 CallLogDetailGroup* group = null;
374 if(__pCallLogDetailGroups != null)
376 group = static_cast<CallLogDetailGroup*>(__pCallLogDetailGroups->GetAt(groupIndex));
379 pItem->SetElement(group->GetTitleText(), pBitmap);
395 LogsDetailItemProvider::DeleteGroupItem(int groupIndex, Tizen::Ui::Controls::GroupItem* pItem, int itemWidth)
402 Tizen::Ui::Controls::ListItemBase*
403 LogsDetailItemProvider::CreateItem(int groupIndex, int itemIndex, int itemWidth)
405 CallLogDetailGroup* pGroup = null;
406 ArrayList* pCalllogList = null;
407 CallLogDetails* calllogInfo = null;
410 String dateText(L"");
411 DateTime calllogDate;
412 CallLogType type = CALL_LOG_TYPE_MAX;
415 Bitmap* pBitmap = null;
419 if(__pCallLogDetailGroups != null)
421 pGroup = static_cast<CallLogDetailGroup*>(__pCallLogDetailGroups->GetAt(groupIndex));
424 pCalllogList = pGroup->GetLogData();
425 if(pCalllogList != null)
427 calllogInfo = static_cast<CallLogDetails*>(pCalllogList->GetAt(itemIndex));
431 if(calllogInfo != null)
433 duration = calllogInfo->GetDuration();
434 type = calllogInfo->GetCalllogType();
435 calllogDate = calllogInfo->GetDateTime();
436 if(type == CALL_LOG_TYPE_VOICE_MISSED_UNSEEN)
438 __pLogPresentor->SetMissedCallSeenStatus(calllogInfo);
442 Bitmap* pTypeBitmap=null;
443 GetCallogIconBitmap(type,pBitmap,pTypeBitmap,typeText);
445 GetTimeText(calllogDate,dateText);
447 ListAnnexStyle style = LIST_ANNEX_STYLE_NORMAL;
449 TextElement* textElement = new (std::nothrow) TextElement();
451 String appPath = (Application::GetInstance())->GetAppRootPath();
452 CustomItem* pItem = new (std::nothrow) CustomItem();
453 if (__isEditMode == true)
455 style = LIST_ANNEX_STYLE_MARK;
457 pItem->Construct(Dimension(itemWidth, __itemHeight), style);
459 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);
460 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);
462 if (__isEditMode == true)
464 pItem->AddElement(Rectangle(X_TEXT_LINE1_ITEM, Y_TEXT_LINE1_ITEM, W_TEXT_LINE1_ITEM - 76, __fontSize + 16), ID_NAME_STRING, dateText, false);
465 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);
468 if(IsTimeToBeDisplayed(type) == true)
470 EnrichedText* text = new (std::nothrow) EnrichedText();
471 text->Construct(Dimension(W_TEXT_TIME_ITEM, H_TEXT_TIME_ITEM));
472 text->SetHorizontalAlignment(TEXT_ALIGNMENT_RIGHT);
473 text->SetVerticalAlignment(TEXT_ALIGNMENT_MIDDLE);
478 durationText.Format(10,L"%02d:%02d:%02d", hr, min, sec);
479 textElement->Construct(durationText);
481 font.Construct(FONT_STYLE_PLAIN, 32);
482 textElement->SetFont(font);
483 textElement->SetTextColor(Color::GetColor(COLOR_ID_GREY));
484 text->Add(*textElement);
486 if (__isEditMode == false)
488 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);
492 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);
499 if (pTypeBitmap != null)
501 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);
507 if (__isEditMode == false)
509 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);
513 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);
524 LogsDetailItemProvider::IsTimeToBeDisplayed(CallLogType type)
528 case CALL_LOG_TYPE_VOICE_REJECTED:
529 case CALL_LOG_TYPE_VOICE_MISSED:
530 case CALL_LOG_TYPE_VOICE_BLOCKED:
531 case CALL_LOG_TYPE_VIDEO_REJECTED:
532 case CALL_LOG_TYPE_VIDEO_BLOCKED:
533 case CALL_LOG_TYPE_VIDEO_MISSED:
538 case CALL_LOG_TYPE_VOICE_INCOMING:
539 case CALL_LOG_TYPE_VOICE_OUTGOING:
540 case CALL_LOG_TYPE_VIDEO_INCOMING:
541 case CALL_LOG_TYPE_VIDEO_OUTGOING:
546 case CALL_LOG_TYPE_SMS_INCOMING:
547 case CALL_LOG_TYPE_SMS_OUTGOING:
548 case CALL_LOG_TYPE_SMS_BLOCKED:
549 case CALL_LOG_TYPE_MMS_INCOMING:
550 case CALL_LOG_TYPE_MMS_OUTGOING:
551 case CALL_LOG_TYPE_MMS_BLOCKED:
552 case CALL_LOG_TYPE_EMAIL_INCOMING:
553 case CALL_LOG_TYPE_EMAIL_OUTGOING:
567 LogsDetailItemProvider::GetCallogIconBitmap(CallLogType logType,Bitmap*& iconType, Bitmap*& iconArrow, String& text)
569 AppResource* pAppResource = App::GetInstance()->GetAppResource();
572 case CALL_LOG_TYPE_VOICE_INCOMING:
574 iconType = pAppResource->GetBitmapN(IDB_LOG_CALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
575 iconArrow = pAppResource->GetBitmapN(IDB_LOG_RECEIVEDCALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
576 text.Append(AppUtility::GetResourceString(IDS_CALLLOG_RECEIVED));
580 case CALL_LOG_TYPE_VOICE_OUTGOING:
582 iconType = pAppResource->GetBitmapN(IDB_LOG_CALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
583 iconArrow = pAppResource->GetBitmapN(IDB_LOG_DIALEDCALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
584 text.Append(AppUtility::GetResourceString(IDS_CALLLOG_OUTGOING));
587 case CALL_LOG_TYPE_VOICE_REJECTED:
589 iconType = pAppResource->GetBitmapN(IDB_LOG_CALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
590 iconArrow = pAppResource->GetBitmapN(IDB_LOG_BLOCKEDCALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
591 text.Append(AppUtility::GetResourceString(IDS_CALLLOG_REJECTED));
594 case CALL_LOG_TYPE_VOICE_MISSED:
596 iconType = pAppResource->GetBitmapN(IDB_LOG_CALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
597 iconArrow = pAppResource->GetBitmapN(IDB_LOG_MISSEDCALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
598 text.Append(AppUtility::GetResourceString(IDS_CALLLOG_MISSED));
601 case CALL_LOG_TYPE_VOICE_BLOCKED:
603 iconType = pAppResource->GetBitmapN(IDB_LOG_CALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
604 iconArrow = pAppResource->GetBitmapN(IDB_LOG_BLOCKEDCALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
605 text.Append(AppUtility::GetResourceString(IDS_CALLLOG_MISSED));
609 case CALL_LOG_TYPE_VIDEO_INCOMING:
611 iconType = pAppResource->GetBitmapN(IDB_LOG_VIDEO_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
612 iconArrow = pAppResource->GetBitmapN(IDB_LOG_RECEIVEDCALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
613 text.Append(AppUtility::GetResourceString(IDS_CALLLOG_RECEIVED));
616 case CALL_LOG_TYPE_VIDEO_OUTGOING:
618 iconType = pAppResource->GetBitmapN(IDB_LOG_VIDEO_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
619 iconArrow = pAppResource->GetBitmapN(IDB_LOG_DIALEDCALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
620 text.Append(AppUtility::GetResourceString(IDS_CALLLOG_OUTGOING));
623 case CALL_LOG_TYPE_VIDEO_MISSED:
624 case CALL_LOG_TYPE_VIDEO_REJECTED:
626 iconType = pAppResource->GetBitmapN(IDB_LOG_VIDEO_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
627 iconArrow = pAppResource->GetBitmapN(IDB_LOG_MISSEDCALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
628 text.Append(AppUtility::GetResourceString(IDS_CALLLOG_MISSED));
631 case CALL_LOG_TYPE_VIDEO_BLOCKED:
633 iconType = pAppResource->GetBitmapN(IDB_LOG_VIDEO_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
634 iconArrow = pAppResource->GetBitmapN(IDB_LOG_BLOCKEDCALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
635 text.Append(AppUtility::GetResourceString(IDS_CALLLOG_MISSED));
639 case CALL_LOG_TYPE_SMS_INCOMING:
641 iconType = pAppResource->GetBitmapN(IDB_LOG_SMS_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
642 iconArrow = pAppResource->GetBitmapN(IDB_LOG_RECEIVEDCALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
643 text.Append(AppUtility::GetResourceString(IDS_CALLLOG_RECEIVED_MSG));
646 case CALL_LOG_TYPE_SMS_OUTGOING:
648 iconType = pAppResource->GetBitmapN(IDB_LOG_SMS_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
649 iconArrow = pAppResource->GetBitmapN(IDB_LOG_DIALEDCALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
650 text.Append(AppUtility::GetResourceString(IDS_CALLLOG_SENT_MSG));
654 case CALL_LOG_TYPE_SMS_BLOCKED:
656 iconType = pAppResource->GetBitmapN(IDB_LOG_SMS_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
657 iconArrow = pAppResource->GetBitmapN(IDB_LOG_BLOCKEDCALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
658 text.Append(AppUtility::GetResourceString(IDS_CALLLOG_RECEIVED_MSG));
662 case CALL_LOG_TYPE_MMS_INCOMING:
664 iconType = pAppResource->GetBitmapN(IDB_LOG_MMS_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
665 iconArrow = pAppResource->GetBitmapN(IDB_LOG_RECEIVEDCALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
666 text.Append(AppUtility::GetResourceString(IDS_CALLLOG_RECEIVED_MSG));
669 case CALL_LOG_TYPE_MMS_OUTGOING:
671 iconType = pAppResource->GetBitmapN(IDB_LOG_MMS_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
672 iconArrow = pAppResource->GetBitmapN(IDB_LOG_DIALEDCALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
673 text.Append(AppUtility::GetResourceString(IDS_CALLLOG_SENT_MSG));
676 case CALL_LOG_TYPE_MMS_BLOCKED:
678 iconType = pAppResource->GetBitmapN(IDB_LOG_MMS_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
679 iconArrow = pAppResource->GetBitmapN(IDB_LOG_BLOCKEDCALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
680 text.Append(AppUtility::GetResourceString(IDS_CALLLOG_RECEIVED_MSG));
683 case CALL_LOG_TYPE_EMAIL_INCOMING:
685 iconType = pAppResource->GetBitmapN(IDB_LOG_SMS_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
686 iconArrow = pAppResource->GetBitmapN(IDB_LOG_RECEIVEDCALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
687 text.Append(AppUtility::GetResourceString(IDS_CALLLOG_RECEIVED_MSG));
690 case CALL_LOG_TYPE_EMAIL_OUTGOING:
692 iconType = pAppResource->GetBitmapN(IDB_LOG_SMS_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
693 iconArrow = pAppResource->GetBitmapN(IDB_LOG_DIALEDCALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
694 text.Append(AppUtility::GetResourceString(IDS_CALLLOG_SENT_MSG));
699 iconType = pAppResource->GetBitmapN(IDB_LOG_CALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
700 iconArrow = pAppResource->GetBitmapN(IDB_LOG_MISSEDCALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888);
701 text.Append(AppUtility::GetResourceString(IDS_CALLLOG_MISSED));
708 LogsDetailItemProvider::DeleteItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth)
716 LogsDetailItemProvider::SetViewMode(bool mode)
722 LogsDetailItemProvider::ResetDetailsList(void)
724 delete __pCalllogDetailListByNumber;
725 __pCalllogDetailListByNumber = null;
726 //reset __pCallLogDetailGroups also
730 LogsDetailItemProvider::GetItemAtGroupIndex(int groupIndex, int itemIndex, CallLogDetails** pCalllogDetails)
732 if(__pCallLogDetailGroups != null)
734 CallLogDetailGroup* pGroup = null;
735 ArrayList* list = null;
736 pGroup = static_cast<CallLogDetailGroup*>(__pCallLogDetailGroups->GetAt(groupIndex));
739 list = pGroup->GetLogData();
740 *pCalllogDetails = static_cast<CallLogDetails*>(list->GetAt(itemIndex));
746 LogsDetailItemProvider::GetTimeText(DateTime calllogDate,String& dateText)
748 int hour = calllogDate.GetHour();
749 String key(L"24HourFormatSelected");
750 bool dateFormat24 = true;
753 SettingInfo::GetValue(key, dateFormat24);
754 if (dateFormat24 == false)
756 if (hour > MAX_TWELVEHOUR_FORMAT)
758 hour -= MAX_TWELVEHOUR_FORMAT;
759 amPm.Append(AppUtility::GetResourceString(IDS_PM_TIME));
761 else if (hour < MAX_TWELVEHOUR_FORMAT)
763 amPm.Append(AppUtility::GetResourceString(IDS_AM_TIME));
765 else if (hour == MAX_TWELVEHOUR_FORMAT)
767 amPm.Append(AppUtility::GetResourceString(IDS_PM_TIME));
769 dateText.Format(MAX_TWELVEHOUR_FORMAT_LENGTH,L"%02d:%02d%ls", hour, calllogDate.GetMinute(), amPm.GetPointer());
773 dateText.Format(MAX_TWENTYFOUR_FORMAT_LENGTH,L"%02d:02%d", calllogDate.GetHour(), calllogDate.GetMinute());