Fixed jira issue and fixed prevent issue
[apps/osp/MusicPlayer.git] / src / MpUserPlaylistContentListForm.cpp
1 //
2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
3 //
4 // Licensed under the Flora License, Version 1.0 (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
7 //
8 //     http://floralicense.org/license/
9 //
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.
15 //
16
17 /**
18  * @file                MpUserPlaylistContentListForm.cpp
19  * @brief               This is the implementation file for UserPlaylistContentListForm class.
20  */
21
22 #include "MpPlaylistListPresentationModel.h"
23 #include "MpPlaylistPickerPopup.h"
24 #include "MpSharePopup.h"
25 #include "MpThumbnailInfo.h"
26 #include "MpUserPlaylistContentListForm.h"
27
28 using namespace Tizen::App;
29 using namespace Tizen::Base;
30 using namespace Tizen::Base::Collection;
31 using namespace Tizen::Content;
32 using namespace Tizen::Graphics;
33 using namespace Tizen::Io;
34 using namespace Tizen::System;
35 using namespace Tizen::Ui;
36 using namespace Tizen::Ui::Controls;
37 using namespace Tizen::Ui::Scenes;
38
39 UserPlaylistContentListForm::UserPlaylistContentListForm(void)
40         : ContentListForm::ContentListForm()
41         , ThumbnailBase::ThumbnailBase()
42         , __pContentListTableView(null)
43         , __pThumbnail(null)
44         , __pPresentationModel(null)
45         , __checkedItemCount(0)
46         , __activatedStateContextItem(-1)
47 {
48         AppLogDebug("ENTER");
49         AppLogDebug("EXIT");
50 }
51
52 UserPlaylistContentListForm::~UserPlaylistContentListForm(void)
53 {
54         AppLogDebug("ENTER");
55         AppLogDebug("EXIT");
56 }
57
58 result
59 UserPlaylistContentListForm::Initialize(void)
60 {
61         AppLogDebug("ENTER");
62         if (IsFailed(Form::Construct(IDL_CONTENT_LIST_FORM)))
63         {
64                 AppLogDebug("Construct(IDL_CONTENT_LIST_FORM) failed(%s)", GetErrorMessage(GetLastResult()));
65                 return false;
66         }
67
68         AppLogDebug("EXIT");
69         return Construct();
70 }
71
72 result
73 UserPlaylistContentListForm::Construct(void)
74 {
75         AppLogDebug("ENTER");
76         __pContentListTableView = static_cast<TableView*>(GetControl(IDC_TABLEVIEW_CONTENT_LIST));
77         __pContentListTableView->AddTableViewItemEventListener(*this);
78         __pContentListTableView->SetItemProvider(this);
79
80         SetContentList(__pContentListTableView);
81         AppLogDebug("EXIT");
82         return ContentListForm::Construct();
83 }
84
85 result
86 UserPlaylistContentListForm::OnInitializing(void)
87 {
88         AppLogDebug("ENTER");
89         SetFooter();
90         AppLogDebug("EXIT");
91         return ThumbnailBase::Construct();
92 }
93
94 result
95 UserPlaylistContentListForm::OnTerminating(void)
96 {
97         AppLogDebug("ENTER");
98         ThumbnailBase::Stop();
99         __pPresentationModel = null;
100         AppLogDebug("EXIT");
101         return ContentListForm::OnTerminating();
102 }
103
104 void
105 UserPlaylistContentListForm::OnActionPerformed(const Tizen::Ui::Control& source, int actionId)
106 {
107         AppLogDebug("ENTER");
108         SceneManager* pSceneManager = SceneManager::GetInstance();
109         AppAssert(pSceneManager);
110
111         switch (actionId)
112         {
113         case IDA_HEADER_BUTTON_SELECTE_ALL:
114                 {
115                         bool isChecked = true;
116                         if (__checkedItemCount == __pContentListTableView->GetItemCount())
117                         {
118                                 isChecked = false;
119                         }
120                         SetItemCheckedAll(isChecked);
121                 }
122                 break;
123
124         case IDA_FOOTER_BUTTON_SHARE:
125                 {
126                         LanucherPicker(PICKER_TYPE_SHARE_PICKER);
127                 }
128                 break;
129
130         case IDA_FOOTER_BUTTON_ADD_TO_PLAYLIST:
131                 {
132                         LanucherPicker(PICKER_TYPE_PLAY_LIST_PICKER);
133                 }
134                 break;
135
136         case IDA_CONTEXT_MENU_ITEM_SEARCH:
137                 {
138                         pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SEARCH, SCENE_TRANSITION_ANIMATION_TYPE_NONE, SCENE_HISTORY_OPTION_NO_HISTORY));
139                 }
140                 break;
141
142         case IDA_CONTEXT_MENU_ITEM_EDIT:
143                 {
144                         ToggleScreenState(SCREEN_STATE_EDITOR);
145                 }
146                 break;
147
148         case IDA_CONTEXT_MENU_ITEM_SHARE_VIA:
149                 {
150                         ToggleScreenState(SCREEN_STATE_SHARE_VIA);
151                 }
152                 break;
153
154         case IDA_FOOTER_BUTTON_MORE:
155                 {
156                         Point anchorPoint(X_POINT_FOOTER_MORE, Y_POINT_PORTRAIT_FOOTER_MORE);
157                         if ((GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE) || (GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE_REVERSE))
158                         {
159                                 anchorPoint.y = Y_POINT_LANDSCAPE_FOOTER_MORE;
160                         }
161
162                         CreateContextMenuN(source);
163                         if (IsEmptyContentList())
164                         {
165                                 SetContextMenuItem(CONTEXT_MENU_ITEM_STYLE_ADD, anchorPoint);
166                         }
167                         else
168                         {
169                                 SetContextMenuItem(CONTEXT_MENU_ITEM_STYLE_ADD | CONTEXT_MENU_ITEM_STYLE_SHARE_VIA | CONTEXT_MENU_ITEM_STYLE_EDIT, anchorPoint);
170                         }
171                 }
172                 break;
173
174         case IDA_FOOTER_BUTTON_DELETE:
175                 {
176                         int totalCount = __pPresentationModel->GetContentCount();
177                         for (int iCount = 0; iCount < totalCount; iCount++)
178                         {
179                                 if (__pContentListTableView->IsItemChecked(iCount) == true)
180                                 {
181                                         ContentInformation* pContentInfoStruct = __pPresentationModel->GetContentInfoN(iCount);
182                                         __pContentListTableView->SetItemChecked(iCount, false);
183                                         if (pContentInfoStruct == null)
184                                         {
185                                                 return;
186                                         }
187                                         __pPresentationModel->DeleteContent(USER_CONTENT, *pContentInfoStruct);
188
189                                         delete pContentInfoStruct;
190                                 }
191                         }
192                         RemoveCheckedTableviewItem(false);
193                         __pPresentationModel->UpdatePlaylistContentList(USER_CONTENT, __headerTitle);
194                         UpdateScreenState();
195                         UpdateTableView();
196                 }
197                 break;
198
199         case IDA_CONTEXT_MENU_ITEM_STYLE_ADD:
200                 {
201                         if (__pPresentationModel->GetContentCount() == 0)
202                         {
203                                 MessageBox messageBox;
204                                 messageBox.Construct(L"", ResourceManager::GetString(L"IDS_MUSIC_HEADER_NO_SONGS"), MSGBOX_STYLE_NONE, 500);
205
206                                 int modalResult = 0;
207                                 messageBox.ShowAndWait(modalResult);
208                         }
209                         else
210                         {
211                                 CommonUtil::SetAddtoPlaylistState(true);
212                                 CommonUtil::SetAddtoPlaylistName(__headerTitle);
213                                 pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALL_CONTENT_PICKER));
214                         }
215                 }
216                 break;
217
218         default:
219                 break;
220         }
221
222         TryRemoveContextMenu(actionId);
223         AppLogDebug("EXIT");
224 }
225
226 void
227 UserPlaylistContentListForm::OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId,
228                                                         const Tizen::Ui::Scenes::SceneId& currentSceneId,
229                                                         Tizen::Base::Collection::IList* pArgs)
230 {
231         AppLogDebug("ENTER");
232         if (pArgs != null && previousSceneId.Equals(IDSCN_PLAYLIST_LIST, true) == true)
233         {
234                 __prevSceneId.Append(*static_cast<String*>(pArgs->GetAt(DATA_ITEM_SCENE_NAME)));
235                 __headerTitle.Append(*static_cast<String*>(pArgs->GetAt(DATA_ITEM_CONTENT_NAME)));
236
237                 __pPresentationModel = PlaylistListPresentationModel::GetInstance();
238                 __pPresentationModel->UpdatePlaylistContentList(USER_CONTENT, __headerTitle);
239
240                 SetHeader();
241                 UpdateScreenState();
242                 UpdateTableView();
243
244                 pArgs->RemoveAll(true);
245                 delete pArgs;
246         }
247 //      else if (!(__headerTitle.Equals(L"", false)))
248 //      {
249 //              __pPresentationModel->UpdatePlaylistContentList(USER_CONTENT, __headerTitle);
250 //              UpdateScreenState();
251 //              UpdateTableView();
252 //      }
253         AppLogDebug("EXIT");
254 }
255
256 void
257 UserPlaylistContentListForm::OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId,
258                                                                                         const Tizen::Ui::Scenes::SceneId& nextSceneId)
259 {
260         AppLogDebug("ENTER");
261         CancelAllThumbnailRequest();
262         AppLogDebug("EXIT");
263 }
264
265 int
266 UserPlaylistContentListForm::GetItemCount(void)
267 {
268         AppLogDebug("ENTER");
269         if (__pPresentationModel == null)
270         {
271                 AppLogDebug("EXIT");
272                 return INIT_VALUE;
273         }
274         AppLogDebug("EXIT");
275         return __pPresentationModel->GetContentCount();
276 }
277
278 Tizen::Ui::Controls::TableViewItem*
279 UserPlaylistContentListForm::CreateItem(const int itemIndex, int itemWidth)
280 {
281         AppLogDebug("ENTER");
282         RelativeLayout layout;
283         layout.Construct();
284
285         TableViewAnnexStyle tableViewAnnexStyle = TABLE_VIEW_ANNEX_STYLE_NORMAL;
286         if (GetScreenState() != SCREEN_STATE_NORMAL)
287         {
288                 tableViewAnnexStyle = TABLE_VIEW_ANNEX_STYLE_MARK;
289         }
290
291         TableViewItem* pItem = new (std::nothrow) TableViewItem();
292         ContentInformation* pContentInfo = __pPresentationModel->GetContentInfoN(itemIndex);
293
294         result r = pItem->Construct(layout, Dimension(itemWidth, ITEM_HEIGHT), tableViewAnnexStyle);
295         TryCatch(r == E_SUCCESS, delete pItem, "pItem->Construct(%s)", GetErrorMessage(r));
296         TryCatch(pContentInfo != null, delete pItem, "pContentInfo is null", GetErrorMessage(GetLastResult()));
297
298         r = CreateTableViewItem(*pItem, *pContentInfo);
299         TryCatch(r == E_SUCCESS, delete pItem, "CreateTableViewItem failed(%s)", GetErrorMessage(r));
300
301         RequestThumbnail(pContentInfo->contentId, (new (std::nothrow) Integer(itemIndex)));
302         delete pContentInfo;
303
304         AppLogDebug("EXIT");
305         return pItem;
306
307 CATCH:
308         AppLogDebug("EXIT(%ls)", GetErrorMessage(GetLastResult()));
309         delete pContentInfo;
310         return null;
311 }
312
313 void
314 UserPlaylistContentListForm::OnTableViewItemStateChanged(Tizen::Ui::Controls::TableView& tableView,
315                                                         int itemIndex,
316                                                         Tizen::Ui::Controls::TableViewItem* pItem,
317                                                         Tizen::Ui::Controls::TableViewItemStatus status)
318 {
319         AppLogDebug("ENTER");
320         if (GetScreenState() != SCREEN_STATE_NORMAL)
321         {
322                 SetItemCheckedStateChanged(status);
323                 AppLogDebug("EXIT");
324                 return;
325         }
326
327         if (status == TABLE_VIEW_ITEM_STATUS_SELECTED)
328         {
329                 SceneManager* pSceneManager = SceneManager::GetInstance();
330                 AppAssert(pSceneManager);
331
332                 ArrayList* pSceneArg = MakePlayerSceneParam(itemIndex);
333                 if (pSceneArg != null)
334                 {
335                         pSceneManager->GoForward(ForwardSceneTransition(IDSCN_PLAYER), pSceneArg);
336                 }
337         }
338         AppLogDebug("EXIT");
339 }
340
341 void
342 UserPlaylistContentListForm::OnTableViewContextItemActivationStateChanged(Tizen::Ui::Controls::TableView& tableView, int itemIndex,
343                                                                                 Tizen::Ui::Controls::TableViewContextItem* pContextItem,
344                                                                                 bool activated)
345 {
346         AppLogDebug("ENTER");
347         if (itemIndex >= 0)
348         {
349                 __activatedStateContextItem = itemIndex;
350         }
351         AppLogDebug("EXIT");
352 }
353
354 int
355 UserPlaylistContentListForm::GetDefaultItemHeight(void)
356 {
357         AppLogDebug("ENTER");
358         AppLogDebug("EXIT");
359         return ITEM_HEIGHT;
360 }
361
362 bool
363 UserPlaylistContentListForm::DeleteItem(const int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem)
364 {
365         AppLogDebug("ENTER");
366         AppLogDebug("EXIT");
367         return true;
368 }
369
370 void
371 UserPlaylistContentListForm::OnTableViewItemReordered(Tizen::Ui::Controls::TableView& tableView,
372                                                         int itemIndexFrom,
373                                                         int itemIndexTo)
374 {
375         AppLogDebug("ENTER");
376         AppLogDebug("EXIT");
377 }
378
379 result
380 UserPlaylistContentListForm::CreateTableViewItem(Tizen::Ui::Container& parent, const ContentInformation& contentInfo)
381 {
382         AppLogDebug("ENTER");
383         Panel* pTableViewItem = new (std::nothrow) Panel();
384         if (GetScreenState() != SCREEN_STATE_NORMAL)
385         {
386                 if (IsFailed(pTableViewItem->Construct(IDL_CONTENTS_LIBARY_EDITOR_ITEM_PANEL)))
387                 {
388                         AppLogDebug("Construct(IDL_CONTENTS_LIBARY_ITEM_PANEL) failed(%s)", GetErrorMessage(GetLastResult()));
389                         return E_FAILURE;
390                 }
391         }
392         else
393         {
394                 if (IsFailed(pTableViewItem->Construct(IDL_CONTENTS_LIBARY_ITEM_PANEL)))
395                 {
396                         AppLogDebug("Construct(IDL_CONTENTS_LIBARY_EDITOR_ITEM_PANEL) failed(%s)", GetErrorMessage(GetLastResult()));
397                         return E_FAILURE;
398                 }
399         }
400
401         static_cast<Label*>(pTableViewItem->GetControl(IDC_CONTENTS_TITLE_NAME))->SetText(contentInfo.TitleName);
402         static_cast<Label*>(pTableViewItem->GetControl(IDC_CONTENTS_ARTIST_NAME))->SetText(contentInfo.ArtistName);
403         static_cast<Label*>(pTableViewItem->GetControl(IDC_CONTENTS_THUMBNAIL))->SetBackgroundBitmap(*GetDefaultThumbnail());
404
405         parent.AddControl(*pTableViewItem);
406         CommonUtil::SetLayoutFitToContainer(parent, *pTableViewItem);
407
408         AppLogDebug("EXIT");
409         return E_SUCCESS;
410 }
411
412 result
413 UserPlaylistContentListForm::SetHeader(void)
414 {
415         AppLogDebug("ENTER");
416         CommonUtil::SetSimpleTitleStyle(*GetHeader(), __headerTitle);
417         AppLogDebug("EXIT");
418         return E_SUCCESS;
419 }
420
421 result
422 UserPlaylistContentListForm::SetFooter(void)
423 {
424         AppLogDebug("ENTER");
425         CommonUtil::SetBackButtonStyleFooter(*GetFooter(), STYLE_MORE_ADD);
426         AppLogDebug("EXIT");
427         return E_SUCCESS;
428 }
429
430 bool
431 UserPlaylistContentListForm::IsEmptyContentList(void)
432 {
433         AppLogDebug("ENTER");
434         if (__pPresentationModel->GetContentCount() != INIT_VALUE)
435         {
436                 return false;
437         }
438         AppLogDebug("EXIT");
439         return true;
440 }
441
442 Tizen::Base::Collection::ArrayList*
443 UserPlaylistContentListForm::MakePlayerSceneParam(int startIndex)
444 {
445         AppLogDebug("ENTER");
446         ArrayList* pArgs = new (std::nothrow) ArrayList();
447         result r = pArgs->Construct();
448         if (IsFailed(r))
449         {
450                 AppLogDebug("pArgs->Construct failed(%s)", GetErrorMessage(r));
451                 return null;
452         }
453
454         pArgs->Add(*(new (std::nothrow) String(MUSIC)));
455         pArgs->Add(*(new (std::nothrow) Integer(startIndex)));
456         pArgs->Add(*(__pPresentationModel->GetContentPathListN(USER_CONTENT)));
457
458         AppLogDebug("EXIT");
459         return pArgs;
460 }
461
462 void
463 UserPlaylistContentListForm::OnThumbnailInfoReveivedN(ThumbnailInfo* pThumbnailInfo)
464 {
465         AppLogDebug("ENTER");
466         __pThumbnail = pThumbnailInfo->GetBitmapN();
467         Object* pParam = pThumbnailInfo->GetUserParamN();
468         if (pParam != null)
469         {
470                 __pContentListTableView->RefreshItem((static_cast<Integer*>(pParam))->ToInt(), TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
471                 delete pParam;
472         }
473
474         delete pThumbnailInfo;
475         AppLogDebug("EXIT");
476 }
477
478 void
479 UserPlaylistContentListForm::OnUserEventReceivedN(RequestId requestId, Tizen::Base::Collection::IList* pArgs)
480 {
481         AppLogDebug("ENTER");
482         ContentListForm::OnUserEventReceivedN(requestId, pArgs);
483         if (requestId == ID_DESTORY_PLAY_LIST_PICKER_POPUP)
484         {
485                 __pPresentationModel->UpdatePlaylistContentList(USER_CONTENT, __headerTitle);
486                 __pContentListTableView->UpdateTableView();
487         }
488         AppLogDebug("EXIT");
489 }
490
491 void
492 UserPlaylistContentListForm::UpdateItem(int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem)
493 {
494         AppLogDebug("ENTER");
495         Panel* pItemPanel = null;
496         if (GetScreenState() != SCREEN_STATE_NORMAL)
497         {
498                 pItemPanel = static_cast<Panel*>(pItem->GetControl(IDL_CONTENTS_LIBARY_EDITOR_ITEM_PANEL));
499         }
500         else
501         {
502                 pItemPanel = static_cast<Panel*>(pItem->GetControl(IDL_CONTENTS_LIBARY_ITEM_PANEL));
503         }
504
505         if (pItemPanel == null)
506         {
507                 AppLogDebug("pItemPanel is null");
508                 delete __pThumbnail;
509                 __pThumbnail = null;
510                 return;
511         }
512
513         Label* pThumbnailLabel = static_cast<Label*>(pItemPanel->GetControl(IDC_CONTENTS_THUMBNAIL));
514         if (__pThumbnail == null || pThumbnailLabel == null)
515         {
516                 AppLogDebug("__pThumbnail or pThumbnailLabel is null");
517                 delete __pThumbnail;
518                 __pThumbnail = null;
519                 return;
520         }
521
522         pThumbnailLabel->SetBackgroundBitmap(*__pThumbnail);
523         delete __pThumbnail;
524         __pThumbnail = null;
525         pThumbnailLabel->Invalidate(true);
526         AppLogDebug("EXIT");
527 }
528
529 int
530 UserPlaylistContentListForm::GetCheckedItemCount(void)
531 {
532         AppLogDebug("ENTER");
533         AppLogDebug("EXIT");
534         return __checkedItemCount;
535 }
536
537 void
538 UserPlaylistContentListForm::UpdateTableView(void)
539 {
540         AppLogDebug("ENTER");
541         __pContentListTableView->UpdateTableView();
542         AppLogDebug("EXIT");
543 }
544
545 void
546 UserPlaylistContentListForm::UpdateContentList(void)
547 {
548         AppLogDebug("ENTER");
549         __pPresentationModel->UpdatePlaylistContentList(USER_CONTENT, __headerTitle);
550         UpdateTableView();
551         AppLogDebug("EXIT");
552 }
553
554 void
555 UserPlaylistContentListForm::SetItemCheckedAll(bool isChecked)
556 {
557         AppLogDebug("ENTER");
558         if (isChecked == true)
559         {
560                 __checkedItemCount = __pContentListTableView->GetItemCount();
561         }
562         else
563         {
564                 __checkedItemCount = INIT_VALUE;
565         }
566         CommonUtil::SetItemCheckedAll(isChecked, *__pContentListTableView);
567         CommonUtil::SetFooterItemEnabled(*GetFooter(), isChecked);
568         SetCheckedCountBallonTooltip(GetCheckedItemCount());
569         AppLogDebug("EXIT");
570 }
571
572 void
573 UserPlaylistContentListForm::RemoveCheckedTableviewItem(bool itemRemove)
574 {
575         AppLogDebug("ENTER");
576         if (itemRemove)
577         {
578                 int totalCount = __pContentListTableView->GetItemCount();
579                 for (int iCount = 0; iCount < totalCount; iCount++)
580                 {
581                         if (__pContentListTableView->IsItemChecked(iCount) == true)
582                         {
583                                 __pContentListTableView->SetItemChecked(iCount, false);
584                                 ContentInformation* pContentInfo = __pPresentationModel->GetContentInfoN(iCount);
585                                 if (pContentInfo != null)
586                                 {
587                                         RemoveContentAt(pContentInfo->contentId);
588                                         delete pContentInfo;
589                                 }
590                         }
591                 }
592         }
593
594         __checkedItemCount = INIT_VALUE;
595         SetCheckedCountBallonTooltip(GetCheckedItemCount());
596         CommonUtil::SetFooterItemEnabled(*GetFooter(), false);
597         AppLogDebug("EXIT");
598 }
599
600 void
601 UserPlaylistContentListForm::SetItemCheckedStateChanged(Tizen::Ui::Controls::TableViewItemStatus status)
602 {
603         AppLogDebug("ENTER");
604         if (status == TABLE_VIEW_ITEM_STATUS_UNCHECKED)
605         {
606                 __checkedItemCount--;
607                 if (__checkedItemCount == INIT_VALUE)
608                 {
609                         CommonUtil::SetFooterItemEnabled(*GetFooter(), false);
610                 }
611         }
612         else if (status == TABLE_VIEW_ITEM_STATUS_CHECKED)
613         {
614                 if (__checkedItemCount == INIT_VALUE)
615                 {
616                         CommonUtil::SetFooterItemEnabled(*GetFooter(), true);
617                 }
618
619                 __checkedItemCount++;
620         }
621
622         SetCheckedCountBallonTooltip(GetCheckedItemCount());
623         AppLogDebug("EXIT");
624 }
625
626 Tizen::Base::Collection::IList*
627 UserPlaylistContentListForm::GetPickerArgumentListN(PickerType pickerType, PickerArgumentType argumentType)
628 {
629         AppLogDebug("ENTER");
630         Tizen::Base::Collection::ArrayList* pContentFilePathList = new (std::nothrow) ArrayList(SingleObjectDeleter);
631         if (IsFailed(pContentFilePathList->Construct()))
632         {
633                 AppLogDebug("pContentList->Construct failed(%s)", GetErrorMessage(GetLastResult()));
634                 delete pContentFilePathList;
635                 return null;
636         }
637
638         if (argumentType == PICKER_ARGUMENT_TYPE_ACTIVATED_STATE_CONTEXT_ITEM)
639         {
640                 ContentInformation* pContentInfo = __pPresentationModel->GetContentInfoN(__activatedStateContextItem);
641                 if (pContentInfo == null)
642                 {
643                         delete pContentFilePathList;
644                         AppLogDebug("GetContentInfoN(%d) is null", __activatedStateContextItem);
645                         return null;
646                 }
647
648                 pContentFilePathList->Add(*(new (std::nothrow) String(pContentInfo->ContentFilePath)));
649                 delete pContentInfo;
650         }
651         else if (argumentType == PICKER_ARGUMENT_TYPE_CHECKED_ITEM_ALL)
652         {
653                 int totalCount = __pContentListTableView->GetItemCount();
654                 for (int iCount = 0; iCount < totalCount; iCount++)
655                 {
656                         if (__pContentListTableView->IsItemChecked(iCount) == true)
657                         {
658                                 ContentInformation* pContentInfo = __pPresentationModel->GetContentInfoN(iCount);
659                                 if (pContentInfo == null)
660                                 {
661                                         AppLogDebug("GetContentInfoN(%d) is null", iCount);
662                                         delete pContentFilePathList;
663                                         return null;
664                                 }
665
666                                 if (pickerType == PICKER_TYPE_PLAY_LIST_PICKER)
667                                 {
668                                         pContentFilePathList->Add(*(new (std::nothrow) String(pContentInfo->ContentFilePath)));
669                                 }
670                                 else if (pickerType == PICKER_TYPE_SHARE_PICKER)
671                                 {
672                                         pContentFilePathList->Add(*(new (std::nothrow) String(L"attachment:" + pContentInfo->ContentFilePath)));
673                                 }
674                                 delete pContentInfo;
675                         }
676                 }
677         }
678         AppLogDebug("EXIT");
679         return pContentFilePathList;
680 }