Fixed jira issues:N_SE-46569,N_SE-46541, N_SE-46483 etc
[apps/osp/MusicPlayer.git] / src / MpCommonUtil.cpp
1 //
2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
3 //
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
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                MpCommonUtil.cpp
19  * @brief               This is the implementation file for CommonUtil class.
20  */
21
22 #include <unique_ptr.h>
23 #include "MpCommonUtil.h"
24
25 using namespace Tizen::App;
26 using namespace Tizen::Base;
27 using namespace Tizen::Base::Collection;
28 using namespace Tizen::Base::Utility;
29 using namespace Tizen::Content;
30 using namespace Tizen::Graphics;
31 using namespace Tizen::Io;
32 using namespace Tizen::System;
33 using namespace Tizen::Ui;
34 using namespace Tizen::Ui::Controls;
35 using namespace Tizen::Ui::Scenes;
36
37 static const int H_CREATE_TABLE_VIEW_ITEM = 70;
38 static const int Y_CREATE_TABLE_VIEW_ITEM = 29;
39 static const int W_CREATE_TABLE_VIEW_ITEM_COUNT_LABEL_ITEM = 170;
40 static const int DEPTH = 3;
41
42 const wchar_t* SECTION_MUSIC_SETTING = L"MUSIC_SETTING";
43 const wchar_t* INITIAL_TAB = L"INITIAL_TAB";      // 0 - 7
44 const wchar_t* SONGS_TAB = L"SONGS_TAB";        // 0 - 1 (UNCHECKED, CHECKED)
45 const wchar_t* ALBUMS_TAB = L"ALBUMS_TAB";       // 0 - 1 (UNCHECKED, CHECKED)
46 const wchar_t* ARTISTS_TAB = L"ARTISTS_TAB";      // 0 - 1 (UNCHECKED, CHECKED)
47 const wchar_t* GENRES_TAB = L"GENRES_TAB";       // 0 - 1 (UNCHECKED, CHECKED)
48 const wchar_t* COMPOSERS_TAB = L"COMPOSERS_TAB";    // 0 - 1 (UNCHECKED, CHECKED)
49 const wchar_t* YEARS_TAB = L"YEARS_TAB";        // 0 - 1 (UNCHECKED, CHECKED)
50 const wchar_t* FOLDERS_TAB = L"FOLDERS_TAB";      // 0 - 1 (UNCHECKED, CHECKED)
51 const wchar_t* PLAYERLISTS_TAB = L"PLAYERLISTS_TAB";  // 0 - 1 (UNCHECKED, CHECKED)
52 const wchar_t* AUTO_OFF_LEVEL = L"AUTO_OFF_LEVEL";   // 0 - 5 (OFF, 15 MIN, 30 MIN, 1 HOUR, 1 HOUR 30 MIN, 2 HOURS)
53 const wchar_t* MOST_PLAYED = L"MOST_PLAYED";            // 0 - 1 (UNCHECKED, CHECKED)
54 const wchar_t* RECENTLY_PLAYED = L"RECENTLY_PLAYED";    // 0 - 1 (UNCHECKED, CHECKED)
55 const wchar_t* RECENTLY_ADD = L"RECENTLY_ADD";          // 0 - 1 (UNCHECKED, CHECKED)
56 const wchar_t* REPEAT_MODE = L"REPEAT_MODE";      // 0 - 2 (OFF, ONE, ALL)
57 const wchar_t* SHUFFLE_MODE = L"SHUFFLE_MODE";     // 0 - 1 (OFF, ON)
58 const wchar_t* VOLUME_LEVEL = L"VOLUME_LEVEL";     // 0 - 15
59
60 static const wchar_t* IDS_ORIGINAL_QUOTATION = L"'";
61 static const wchar_t* IDS_REPLACE_QUOTATION = L"\\'";
62 static const wchar_t* STRING_QUERY_PREFIX = L" ='";
63 static const wchar_t* STRING_QUERY_SUFFIX = L"'";
64 static const wchar_t* IDS_ORIGIONAL_PERCENTAGE = L"%";
65 static const wchar_t* IDS_REPLACE_PERCENTAGE = L"\\%";
66 static const wchar_t* IDS_ORIGIONAL_UNDERBAR = L"_";
67 static const wchar_t* IDS_REPLACE_UNDERBAR = L"\\_";
68 static const wchar_t* IDS_ORIGIONAL_DOUBLESLASH = L"\\";
69 static const wchar_t* IDS_REPLACE_DOUBLESLASH = L"\\\\";
70
71
72
73 static bool __addToPlaylistState = false;
74 static Tizen::Base::String __AddToPlaylistName = null;
75
76 static const int Y_GAP_CONTENT_PIKER_ITEM = 16;
77 static const int W_SONG_TITLE_CONTENT_PIKER_ITEM = 440;
78 static const int H_SONG_TITLE_CONTENT_PIKER_ITEM = 88;
79 static const int W_SONG_TIME_CONTENT_PIKER_ITEM = 155;
80
81 Tizen::Graphics::Bitmap*
82 CommonUtil::GetContentAlbumArtN(Tizen::Base::String& path)
83 {
84         AppLogDebug("ENTER");
85         Tizen::Graphics::Bitmap* pBitmap = null;
86
87         AppLogDebug("path(%ls)", path.GetPointer());
88         Tizen::Content::AudioMetadata* pAudioMeta = Tizen::Content::ContentManagerUtil::GetAudioMetaN(path);
89         if (pAudioMeta == null)
90         {
91                 AppLogDebug("EXIT");
92                 return null;
93         }
94
95         pBitmap = pAudioMeta->GetAlbumArtN();
96         delete pAudioMeta;
97
98         AppLogDebug("EXIT");
99         return pBitmap;
100 }
101
102 Tizen::Content::AudioContentInfo*
103 CommonUtil::GetAudioContentInfoN(const Tizen::Base::String& filePath)
104 {
105         AppLogDebug("ENTER");
106         ContentId contentId = GetContentId(filePath);
107         AppLogDebug("Audio ContentID = %ls for file = %ls", contentId.ToString().GetPointer(),filePath.GetPointer());
108
109         if (IsFailed(GetLastResult()))
110         {
111                 AppLogDebug("filePath(%ls) failed", filePath.GetPointer());
112                 SetLastResult(E_FAILURE);
113                 return null;
114         }
115
116         ContentInfo* pContentInfo = GetContentInfoN(contentId);
117         if (pContentInfo == null || pContentInfo->GetContentType() != CONTENT_TYPE_AUDIO)
118         {
119                 AppLogDebug("GetContentInfoN(%ls) failed", contentId.ToString().GetPointer());
120                 delete pContentInfo;
121                 SetLastResult(E_FAILURE);
122                 return null;
123         }
124
125         AppLogDebug("EXIT");
126         return static_cast<AudioContentInfo*>(pContentInfo);
127 }
128
129 Tizen::Base::Collection::IList*
130 CommonUtil::ContentSearchResultListN(const Tizen::Base::String& contentFileName,
131                                                                          const Tizen::Base::String& ColumnName,
132                                                                          const Tizen::Base::String& sortColumn,
133                                                                          Tizen::Base::SortOrder sortOrder)
134 {
135         AppLogDebug("ENTER");
136         String WhereExpr = contentFileName;
137 //      WhereExpr.Replace(IDS_ORIGINAL_QUOTATION, IDS_REPLACE_QUOTATION);
138         WhereExpr.Replace(IDS_ORIGIONAL_DOUBLESLASH, IDS_REPLACE_DOUBLESLASH);
139         WhereExpr.Replace(IDS_ORIGIONAL_UNDERBAR, IDS_REPLACE_UNDERBAR);
140         WhereExpr.Replace(IDS_ORIGINAL_QUOTATION, IDS_REPLACE_QUOTATION);
141         WhereExpr.Replace(IDS_ORIGIONAL_PERCENTAGE, IDS_REPLACE_PERCENTAGE);
142         //WhereExpr = CommonUtil::SpecialReplaceChange(contentFileName);
143         WhereExpr = CommonUtil::MakeQuery(ColumnName, WhereExpr);
144
145         Tizen::Base::Collection::IList* pSearchList = CommonUtil::SearchContentList(WhereExpr, sortColumn);
146         if (pSearchList == null)
147         {
148                 SetLastResult(E_FAILURE);
149                 AppLogDebug("CommonUtil::SearchContentList failed");
150                 return null;
151         }
152         AppLogDebug("EXIT");
153         return pSearchList;
154 }
155
156 Tizen::Base::String
157 CommonUtil::FilePathToContentFileName(const Tizen::Base::String& filePath)
158 {
159         AppLogDebug("ENTER");
160         String tempWhereClause = filePath;
161         int indexOf = -1;
162         String contentFileName = null;
163
164         tempWhereClause.LastIndexOf(L"/", tempWhereClause.GetLength() - 1,  indexOf);
165         tempWhereClause.SubString(indexOf + 1, contentFileName);
166         
167         AppLogDebug("EXIT");
168         return contentFileName;
169 }
170
171 Tizen::Content::ContentId
172 CommonUtil::GetContentId(const Tizen::Base::String& filePath)
173 {
174         AppLogDebug("ENTER");
175         String contentFileName = FilePathToContentFileName(filePath);
176         AppLogDebug("filePath(%ls), contentFileName(%ls)",filePath.GetPointer(), contentFileName.GetPointer() );
177         IList* pContentSearchResultList = ContentSearchResultListN(contentFileName, STRING_SORT_FILE_NAME, STRING_SORT_TITLE);
178         if (pContentSearchResultList == null || pContentSearchResultList->GetCount() == 0)
179         {
180                 SetLastResult(E_FAILURE);
181                 delete pContentSearchResultList;
182                 AppLogDebug("CommonUtil::ContentSearchResultListN(%ls) failed", filePath.GetPointer());
183                 return ContentId();
184         }
185
186         ContentSearchResult* pResult = null;
187         ContentInfo* pContentInfo = null;
188
189         IEnumerator* pEnum = pContentSearchResultList->GetEnumeratorN();
190         if (pEnum != null)
191         {
192                 while (pEnum->MoveNext() == E_SUCCESS)
193                 {
194                         pResult = static_cast<ContentSearchResult*>(pEnum->GetCurrent());
195                         ContentInfo* pTempContentInfo = pResult->GetContentInfo();
196
197                         AppLogDebug("filePath(%ls), pTempContentInfo(%ls)", filePath.GetPointer(), pTempContentInfo->GetContentPath().GetPointer());
198                         if (filePath.Equals(pTempContentInfo->GetContentPath()) == true)
199                         {
200                                 pContentInfo = pTempContentInfo;
201                                 break;
202                         }
203                 }
204
205                 delete pEnum;
206         }
207
208         ContentId contentId;
209
210         if (pContentInfo == null)
211         {
212                 SetLastResult(E_FAILURE);
213                 AppLogDebug("Content search failed");
214                 contentId = ContentId();
215         }
216         else
217         {
218                 contentId = pContentInfo->GetContentId();
219         }
220
221         pContentSearchResultList->RemoveAll(true);
222         delete pContentSearchResultList;
223
224         AppLogDebug("EXIT");
225         return contentId;
226 }
227
228 Tizen::Content::ContentInfo*
229 CommonUtil::GetContentInfoN(const Tizen::Content::ContentId& contentId)
230 {
231         AppLogDebug("ENTER");
232         ContentManager contentManager;
233         result r = contentManager.Construct();
234         if (IsFailed(r))
235         {
236                 AppLogDebug("contentManager.Construct() failed(%s)", GetErrorMessage(r));
237                 return null;
238         }
239
240         ContentInfo* pContentInfo = contentManager.GetContentInfoN(contentId);
241         AppLogDebug("EXIT");
242         return pContentInfo;
243 }
244
245 result
246 CommonUtil::StringToContentId(const Tizen::Base::String& contentIdString, Tizen::Content::ContentId& outContentId)
247 {
248         AppLogDebug("ENTER");
249         ContentId pcontentId;
250         UuId uuId;
251         result r = pcontentId.Parse(contentIdString, uuId);
252         if (IsFailed(r))
253         {
254                 AppLogDebug("pcontentId.Parse(%s, outContentId) failed", contentIdString.GetPointer());
255                 return r;
256         }
257
258         outContentId = uuId;
259         AppLogDebug("EXIT");
260         return E_SUCCESS;
261 }
262
263 Tizen::Base::String
264 CommonUtil::GetFormatDate(long dateValue)
265 {
266 //      AppLogDebug("ENTER");
267         String fTime;
268         if (dateValue < 0)
269         {
270 //              fTime.Format(20, L"%02d:%02d:%02d", 0, 0, 0);
271                 fTime.Format(20, L"%02d:%02d", 0, 0);
272         }
273         else
274         {
275                 DateTime dateTime;
276                 dateTime.AddSeconds(dateValue / 1000);
277 //              fTime.Format(20, L"%02d:%02d:%02d", dateTime.GetHour(), dateTime.GetMinute(), dateTime.GetSecond());
278                 fTime.Format(20, L"%02d:%02d",dateTime.GetMinute(), dateTime.GetSecond());
279         }
280 //      AppLogDebug("EXIT");
281         return fTime;
282 }
283
284 Tizen::Base::String
285 CommonUtil::SpecialReplaceChange(const Tizen::Base::String& text)
286 {
287         AppLogDebug("ENTER");
288         String retStr(L"");
289         retStr.Append(text);
290
291         retStr.Replace(IDS_ORIGIONAL_DOUBLESLASH, IDS_REPLACE_DOUBLESLASH);
292         retStr.Replace(IDS_ORIGIONAL_UNDERBAR, IDS_REPLACE_UNDERBAR);
293         retStr.Replace(IDS_ORIGINAL_QUOTATION, IDS_REPLACE_QUOTATION);
294         retStr.Replace(IDS_ORIGIONAL_PERCENTAGE, IDS_REPLACE_PERCENTAGE);
295
296         AppLogDebug("EXIT");
297         return retStr;
298 }
299
300 Tizen::Base::Collection::IList*
301 CommonUtil::SearchContentList(const Tizen::Base::String& whereExpr,
302                                         const Tizen::Base::String& sortColumn,
303                                         Tizen::Base::SortOrder sortOrder)
304 {
305         AppLogDebug("ENTER");
306         AppLogDebug("%ls, %ls", whereExpr.GetPointer(), sortColumn.GetPointer());
307         int totalPage = 0;
308         int totalCount = 0;
309
310         ContentSearch search;
311         search.Construct(CONTENT_TYPE_AUDIO);
312         IList* pSearchList = search.SearchN(SEARCH_PAGE_NO, SEARCH_COUNT_PER_PAGE, totalPage, totalCount, whereExpr, sortColumn, sortOrder);
313         if (pSearchList == null)
314         {
315                 AppLogDebug("pSearchList is null");
316                 return null;
317         }
318
319         AppLogDebug("%d", pSearchList->GetCount());
320         AppLogDebug("EXIT");
321         return pSearchList;
322 }
323
324 Tizen::Base::Collection::IList*
325 CommonUtil::SearchContentList(const Tizen::Base::String& columnName)
326 {
327         AppLogDebug("ENTER");
328         int totalPage = 0;
329         int totalCount = 0;
330
331         ContentSearch search;
332         search.Construct(CONTENT_TYPE_AUDIO);
333
334         IList* pSearchList = search.GetValueListN(SEARCH_PAGE_NO, SEARCH_COUNT_PER_PAGE, totalPage, totalCount, columnName, SORT_ORDER_ASCENDING);
335         if (pSearchList == null)
336         {
337                 AppLogDebug("pSearchList is null");
338                 return null;
339         }
340
341         AppLogDebug("EXIT");
342         return pSearchList;
343 }
344
345 Tizen::Base::String
346 CommonUtil::MakeQuery(const Tizen::Base::String& ColumnName,
347                                 const Tizen::Base::String& SerachName)
348 {
349         AppLogDebug("ENTER");
350         String MakeQueryName = null;
351         result r = E_SUCCESS;
352
353         r = MakeQueryName.Append(ColumnName);
354         TryCatch(r == E_SUCCESS, , "String::MakeQuery() fail[%s]", GetErrorMessage(r));
355
356         r = MakeQueryName.Append(STRING_QUERY_PREFIX);
357         TryCatch(r == E_SUCCESS, , "String::MakeQuery() fail[%s]", GetErrorMessage(r));
358
359         r = MakeQueryName.Append(SerachName);
360         TryCatch(r == E_SUCCESS, , "String::MakeQuery() fail[%s]", GetErrorMessage(r));
361
362         r = MakeQueryName.Append(STRING_QUERY_SUFFIX);
363         TryCatch(r == E_SUCCESS, , "String::MakeQuery() fail[%s]", GetErrorMessage(r));
364
365         AppLogDebug("EXIT");
366         return MakeQueryName;
367
368 CATCH:
369         MakeQueryName.Clear();
370         return MakeQueryName;
371 }
372
373 int
374 CommonUtil::GetValue(const Tizen::Base::String& entryName)
375 {
376         AppLogDebug("ENTER");
377         result r = E_SUCCESS;
378         int value = 0;
379         AppRegistry* pAppRegistry = null;
380         pAppRegistry = UiApp::App::GetInstance()->GetAppRegistry();
381         TryCatch(pAppRegistry != null, , "Failed to Find AppRegistry!");
382         r = pAppRegistry->Get(entryName, value);
383         if (r == E_KEY_NOT_FOUND)
384         {
385                 AppLogDebug("registry initialize.");
386                 r = pAppRegistry->Add(MOST_PLAYED, 1);
387                 r = pAppRegistry->Add(RECENTLY_PLAYED, 1);
388                 r = pAppRegistry->Add(RECENTLY_ADD, 1);
389                 r = pAppRegistry->Add(AUTO_OFF_LEVEL, 0);
390                 r = pAppRegistry->Add(REPEAT_MODE, 2);
391                 r = pAppRegistry->Add(SHUFFLE_MODE, 0);
392                 r = pAppRegistry->Add(VOLUME_LEVEL, 5);
393                 r = pAppRegistry->Save();
394
395                 pAppRegistry->Get(entryName, value);
396         }
397         AppLogDebug("EXIT");
398         return value;
399
400 CATCH:
401         //AppLogDebug("CATCH : %s", GetErrorMessage(r));
402         return r;
403 }
404
405 result
406 CommonUtil::SetValue(const Tizen::Base::String& entryName, const int value)
407 {
408         AppLogDebug("ENTER");
409         result r = E_SUCCESS;
410         AppRegistry* pAppRegistry = null;
411         pAppRegistry = UiApp::App::GetInstance()->GetAppRegistry();
412         TryCatch(pAppRegistry != null, , "Failed to Find AppRegistry!");
413         r = pAppRegistry->Set(entryName, value);
414         if (r == E_KEY_NOT_FOUND)
415         {
416                 AppLogDebug("registry initialize.");
417                 r = pAppRegistry->Add(MOST_PLAYED, 1);
418                 r = pAppRegistry->Add(RECENTLY_PLAYED, 1);
419                 r = pAppRegistry->Add(RECENTLY_ADD, 1);
420                 r = pAppRegistry->Add(AUTO_OFF_LEVEL, 0);
421                 r = pAppRegistry->Add(REPEAT_MODE, 2);
422                 r = pAppRegistry->Add(SHUFFLE_MODE, 0);
423                 r = pAppRegistry->Add(VOLUME_LEVEL, 5);
424                 r = pAppRegistry->Set(entryName, value);
425                 r = pAppRegistry->Save();
426         }
427         else
428         {
429                 pAppRegistry->Save();
430         }
431         AppLogDebug("EXIT");
432         return r;
433
434 CATCH:
435         //AppLogDebug("CATCH : %s", GetErrorMessage(r));
436         return r;
437 }
438
439 void
440 CommonUtil::ShowNowPlayPanel(Tizen::Ui::Controls::TableView& tableView,
441                                                         const bool playStatus,
442                                                         Tizen::Graphics::Rectangle clientBounds)
443 {
444         AppLogDebug("ENTER");
445         if (playStatus == true)
446         {
447                 tableView.SetBounds(Rectangle(0, H_NOW_PLAY_BAR, clientBounds.width, clientBounds.height - H_NOW_PLAY_BAR));
448                 tableView.Invalidate(true);
449         }
450         else
451         {
452                 tableView.SetBounds(Rectangle(0, 0, clientBounds.width, clientBounds.height));
453                 tableView.Invalidate(true);
454         }
455         AppLogDebug("EXIT");
456 }
457
458 Tizen::Base::String
459 CommonUtil::GetContentInfo(const ContentInformation& contentInfoStruct,
460                                                         const Tizen::Base::String& SceneId)
461 {
462         AppLogDebug("ENTER");
463         String retString = null;
464
465         if (SceneId.Equals(IDSCN_ALBUM_LIST, true) || SceneId.Equals(IDSCN_SEARCH, true))
466         {
467                 retString = contentInfoStruct.AlbumName;
468         }
469         else if (SceneId.Equals(IDSCN_ARTIST_ALBUM_LIST, true))
470         {
471                 retString = contentInfoStruct.AlbumName;
472         }
473         else if (SceneId.Equals(IDSCN_GENRE_LIST, true))
474         {
475                 retString = contentInfoStruct.GenreName;
476         }
477         else if (SceneId.Equals(IDSCN_COMPOSER_LIST, true))
478         {
479                 retString = contentInfoStruct.ComposerName;
480         }
481         else if (SceneId.Equals(IDSCN_YEAR_LIST, true))
482         {
483                 retString = Integer::ToString(contentInfoStruct.ReleaseYear);;
484                 if (retString.Equals(L"0", true))
485                 {
486                         retString = STRING_UNKNOWN;
487                 }
488         }
489         else if (SceneId.Equals(IDSCN_FOLDER_LIST, true))
490         {
491                 retString = contentInfoStruct.ContentFilePath;
492         }
493         else if (SceneId.Equals(IDSCN_PLAYLIST_LIST, true))
494         {
495                 retString = contentInfoStruct.TitleName;
496         }
497         AppLogDebug("EXIT");
498         return retString;
499 }
500
501 Tizen::Base::String
502 CommonUtil::SetSongsString(const int temp)
503 {
504         AppLogDebug("ENTER");
505         String StrSongs = null;
506         String StrFormat = null;
507         if (temp == 1)
508         {
509                 StrSongs.Append(ResourceManager::GetString("IDS_GC_BODY_1_SONG"));
510         }
511         else
512         {
513                 StrSongs.Append(ResourceManager::GetString("IDS_GC_BODY_PD_SONGS"));
514         }
515         StrFormat.Format(STRING_LENGTH, StrSongs.GetPointer(), temp);
516         AppLogDebug("EXIT");
517         return StrFormat;
518 }
519
520 void
521 CommonUtil::ShowCheckedCountLabel(Tizen::Ui::Controls::Label& checkCountLabel, int itemCount, Tizen::Ui::Controls::TableView& tableView, const Tizen::Ui::Controls::Form& form)
522 {
523         AppLogDebug("ENTER");
524         int width = form.GetClientAreaBounds().width;
525         int height = form.GetClientAreaBounds().height;
526         if (itemCount == INIT_VALUE)
527         {
528                 checkCountLabel.SetShowState(false);
529                 checkCountLabel.Invalidate(true);
530                 tableView.SetBounds(Rectangle(INIT_VALUE, H_SELECT_ALL_BUTTON, width, height - H_SELECT_ALL_BUTTON));
531                 AppLogDebug("EXIT");
532                 return;
533         }
534
535         String StrSelectStr = null;
536         String ResSelect = ResourceManager::GetString("IDS_COM_BODY_SELECTED");
537         ResSelect.Append(L"(%d)");
538
539         StrSelectStr.Format(STRING_LENGTH, ResSelect.GetPointer(), itemCount);
540
541         checkCountLabel.SetText(StrSelectStr);
542         checkCountLabel.SetShowState(true);
543         checkCountLabel.Invalidate(true);
544
545 //      tableView.SetBounds(Rectangle(INIT_VALUE, H_SELECT_ALL_BUTTON, width, height - H_SELECT_ALL_BUTTON - checkCountLabel.GetBounds().height));
546         tableView.Invalidate(true);
547         AppLogDebug("EXIT");
548 }
549
550 void
551 CommonUtil::ShowSelectAllCheckButton(Tizen::Ui::Controls::CheckButton& checkButton)
552 {
553         AppLogDebug("ENTER");
554         if (checkButton.IsEnabled() == true)
555         {
556                 checkButton.SetSelected(false);
557                 checkButton.Invalidate(true);
558         }
559         AppLogDebug("EXIT");
560 }
561
562 void
563 CommonUtil::SetAllCheckState(bool state,
564                                         Tizen::Ui::Controls::TableView& tableView,
565                                         int totalCount)
566 {
567         AppLogDebug("ENTER");
568
569         for (int iCount = INIT_VALUE; iCount < totalCount; iCount++)
570         {
571                 tableView.SetItemChecked(iCount, state);
572         }
573         tableView.Invalidate(true);
574         AppLogDebug("EXIT");
575 }
576
577 result
578 CommonUtil::SetFastScrollIndex(Tizen::Ui::Controls::TableView& tableview)
579 {
580         AppLogDebug("ENTER");
581         String retCountry = null;
582         Tizen::System::SettingInfo::GetValue("http://tizen.org/setting/locale.country", retCountry);
583
584         String indexText = null;
585         if (retCountry.CompareTo("eng_GB") == 0)
586         {
587                 indexText.Append(L"ABCDEFGHIJKLMNOPQRSTUVWXYZ");
588         }
589         else if(retCountry.CompareTo("kor_KR") == 0)
590         {
591 //              indexText.Append(L"ㄱㄲㄴㄷㄸㄹㅁㅂㅃㅅㅆㅇㅈㅉㅊㅋㅌㅍㅎ");
592                 indexText.Append(L"ABCDEFGHIJKLMNOPQRSTUVWXYZ#0");
593         }
594
595         indexText.Append(L"#");
596         indexText.Append(L"0");
597
598         tableview.SetFastScrollIndex(indexText, false);
599
600         AppLogDebug("EXIT");
601         return E_SUCCESS;
602 }
603
604 void
605 CommonUtil::SetLayoutFitToContainer(const Tizen::Ui::Container& container, Tizen::Ui::Control& childControl)
606 {
607         AppLogDebug("ENTER");
608         RelativeLayout* pLayout = dynamic_cast<RelativeLayout*>(container.GetPortraitLayoutN());
609         if (pLayout != null)
610         {
611                 pLayout->SetHorizontalFitPolicy(childControl, FIT_POLICY_PARENT);
612                 pLayout->SetVerticalFitPolicy(childControl, FIT_POLICY_PARENT);
613                 pLayout->Update();
614                 delete pLayout;
615         }
616         pLayout = dynamic_cast<RelativeLayout*>(container.GetLandscapeLayoutN());
617         if (pLayout != null)
618         {
619                 pLayout->SetHorizontalFitPolicy(childControl, FIT_POLICY_PARENT);
620                 pLayout->SetVerticalFitPolicy(childControl, FIT_POLICY_PARENT);
621                 pLayout->Update();
622                 delete pLayout;
623         }
624         AppLogDebug("EXIT");
625 }
626
627 void
628 CommonUtil::SetFooterItemEnabled(Tizen::Ui::Controls::Footer& pFooter, bool enable)
629 {
630         AppLogDebug("ENTER");
631         for (int iCount = 0; iCount < pFooter.GetItemCount(); iCount++)
632         {
633                 pFooter.SetItemEnabled(iCount, enable);
634         }
635         pFooter.Invalidate(true);
636         AppLogDebug("EXIT");
637 }
638
639 void
640 CommonUtil::SetTabHeaderStyle(Tizen::Ui::Controls::Header& pHeader)
641 {
642         AppLogDebug("ENTER");
643         pHeader.RemoveAllButtons();
644         pHeader.RemoveAllItems();
645
646         pHeader.SetStyle(HEADER_STYLE_TAB);
647         pHeader.SetTitleTextColor(COLOR_HEADER_TITLE_TEXT);
648
649         for (int iCount = 0; iCount < HEAD_ITEM_COUNT; iCount++)
650         {
651                 HeaderItem pTabHeaderItem;
652                 pTabHeaderItem.Construct(IDA_HEADER_BUTTON_SONG + iCount);
653                 pTabHeaderItem.SetText(ResourceManager::GetString(TabNameId[iCount]));
654
655                 pHeader.AddItem(pTabHeaderItem);
656         }
657         pHeader.SetTabEditModeEnabled(false);
658         AppLogDebug("EXIT");
659 }
660
661 void
662 CommonUtil::SetEditHeaderStyle(Tizen::Ui::Controls::Header& pHeader, const Tizen::Base::String& titleText)
663 {
664         AppLogDebug("ENTER");
665         pHeader.RemoveAllButtons();
666         pHeader.RemoveAllItems();
667
668         pHeader.SetStyle(HEADER_STYLE_TITLE);
669         pHeader.SetTitleText(titleText);
670
671         ButtonItem buttonItem;
672         buttonItem.Construct(BUTTON_ITEM_STYLE_ICON, IDA_HEADER_BUTTON_SELECTE_ALL);
673
674         Bitmap* normal = ResourceManager::GetBitmapN(L"00_icon_select_all_web.png");
675         buttonItem.SetIcon(BUTTON_ITEM_STATUS_NORMAL, normal);
676
677         Bitmap* pressed = ResourceManager::GetBitmapN(L"00_icon_select_all_press_web.png");
678         buttonItem.SetIcon(BUTTON_ITEM_STATUS_PRESSED, pressed);
679
680         Bitmap* disable = ResourceManager::GetBitmapN(L"00_icon_select_all_dim_web.png");
681         buttonItem.SetIcon(BUTTON_ITEM_STATUS_DISABLED, disable);
682
683         pHeader.SetButton(BUTTON_POSITION_RIGHT, buttonItem);
684         pHeader.SetTitleTextColor(COLOR_HEADER_TITLE_TEXT);
685
686         delete normal;
687         delete pressed;
688         delete disable;
689         AppLogDebug("EXIT");
690 }
691
692 void
693 CommonUtil::SetButtonItemUnCheckedIcon(Tizen::Ui::Controls::Header& header)
694 {
695         AppLogDebug("ENTER");
696         header.RemoveAllButtons();
697         ButtonItem buttonItem;
698         buttonItem.Construct(BUTTON_ITEM_STYLE_ICON, IDA_HEADER_BUTTON_CHECK_BOX_CHECKED_ICON);
699
700         Bitmap* pBgNormal = ResourceManager::GetBitmapN(L"00_check_bg.png");
701         buttonItem.SetBackgroundBitmap(BUTTON_ITEM_STATUS_NORMAL, pBgNormal);
702
703         Bitmap* pBgPressed = ResourceManager::GetBitmapN(L"00_check_bg_press.png");
704         buttonItem.SetBackgroundBitmap(BUTTON_ITEM_STATUS_PRESSED, pBgPressed);
705
706         Bitmap* pBgDisabled = ResourceManager::GetBitmapN(L"00_check_bg_press.png");
707         buttonItem.SetBackgroundBitmap(BUTTON_ITEM_STATUS_DISABLED, pBgDisabled);
708
709         header.SetButton(BUTTON_POSITION_RIGHT, buttonItem);
710         header.Invalidate(true);
711
712         delete pBgNormal;
713         delete pBgPressed;
714         delete pBgDisabled;
715         AppLogDebug("EXIT");
716 }
717
718 void
719 CommonUtil::SetItemCheckedAll(bool isChecked, Tizen::Ui::Controls::TableView& tableView)
720 {
721         AppLogDebug("ENTER");
722         int totalCount = tableView.GetItemCount();
723         for (int iCount = INIT_VALUE; iCount < totalCount; iCount++)
724         {
725                 tableView.SetItemChecked(iCount, isChecked);
726         }
727         tableView.Invalidate(true);
728         AppLogDebug("EXIT");
729 }
730
731 void
732 CommonUtil::SetButtonItemCheckedIcon(Tizen::Ui::Controls::Header& header)
733 {
734         AppLogDebug("ENTER");
735         header.RemoveAllButtons();
736         ButtonItem buttonItem;
737         buttonItem.Construct(BUTTON_ITEM_STYLE_ICON, IDA_HEADER_BUTTON_CHECK_BOX_UNCHECKED_ICON);
738
739         Bitmap* pBgNormal = ResourceManager::GetBitmapN(L"00_check_bg.png");
740         buttonItem.SetBackgroundBitmap(BUTTON_ITEM_STATUS_NORMAL, pBgNormal);
741
742         Bitmap* pBgPressed = ResourceManager::GetBitmapN(L"00_check_bg_press.png");
743         buttonItem.SetBackgroundBitmap(BUTTON_ITEM_STATUS_PRESSED, pBgPressed);
744
745         Bitmap* pBgDisabled = ResourceManager::GetBitmapN(L"00_check_bg_press.png");
746         buttonItem.SetBackgroundBitmap(BUTTON_ITEM_STATUS_DISABLED, pBgDisabled);
747
748         Bitmap* pIconChecked = ResourceManager::GetBitmapN(L"00_check_checking.png");
749         buttonItem.SetIcon(BUTTON_ITEM_STATUS_NORMAL, pIconChecked);
750         buttonItem.SetIcon(BUTTON_ITEM_STATUS_PRESSED, pIconChecked);
751         buttonItem.SetIcon(BUTTON_ITEM_STATUS_DISABLED, pIconChecked);
752
753         header.SetButton(BUTTON_POSITION_RIGHT, buttonItem);
754         header.Invalidate(true);
755
756         delete pBgNormal;
757         delete pBgPressed;
758         delete pBgDisabled;
759         delete pIconChecked;
760         AppLogDebug("EXIT");
761 }
762
763 Tizen::Ui::Controls::Popup*
764 CommonUtil::CreateContentDeletePopup(Tizen::Ui::IActionEventListener& listener, int deleteActionId, int cancelActionId)
765 {
766         AppLogDebug("ENTER");
767         Popup* pDeletePopup = new (std::nothrow) Popup();
768         if (IsFailed(pDeletePopup->Construct(IDL_CONTENTS_DELETE_POPUP)))
769         {
770                 delete pDeletePopup;
771                 AppLogDebug("Construct(IDL_CONTENTS_DELETE_POPUP))) failed(%s)", GetErrorMessage(GetLastResult()));
772                 return null;
773         }
774
775         Button* pDeleteButton = static_cast<Button*>(pDeletePopup->GetControl(IDC_DELETE_BUTTON));
776         pDeleteButton->SetText(ResourceManager::GetString(L"IDS_MUSIC_OPT_DELETE"));
777         pDeleteButton->SetActionId(deleteActionId);
778         pDeleteButton->AddActionEventListener(listener);
779
780         Button* CancelButton = static_cast<Button*>(pDeletePopup->GetControl(IDC_CANCEL_BUTTON));
781         CancelButton->SetText(ResourceManager::GetString(L"IDS_COM_BODY_EDIT_CANCEL"));
782         CancelButton->SetActionId(cancelActionId);
783         CancelButton->AddActionEventListener(listener);
784
785         Label* pDeleteQustionLabel = static_cast<Label*>(pDeletePopup->GetControl(IDC_LABEL_DELETE_Q));
786         pDeleteQustionLabel->SetText(ResourceManager::GetString(L"IDS_MUSIC_POP_DELETE_Q"));
787
788         AppLogDebug("EXIT");
789         return pDeletePopup;
790 }
791
792 Tizen::Ui::Controls::TableViewContextItem*
793 CommonUtil::CreateTableViewContextItemN(Tizen::Ui::IActionEventListener& listener, int itemWidth, FlickMenuStyle menuStyle)
794 {
795         AppLogDebug("ENTER");
796         Panel* pItem = CommonUtil::CreateFlickMenuN(listener, menuStyle);
797         if (pItem == null)
798         {
799                 AppLogDebug("CommonUtil::CreateSweepMenuItemN failed");
800                 return null;
801         }
802
803         TableViewContextItem* pTableViewContextItem = new (std::nothrow) TableViewContextItem();
804         String fontSizeValue = GetFontSizeValue();
805         int itemHeight = GetItemHeight(fontSizeValue);
806
807         if (IsFailed(pTableViewContextItem->Construct(Dimension(itemWidth, itemHeight))))
808         {
809                 AppLogDebug("Construct(Dimension(GetWidth(), ITEM_HEIGHT) failed(%s)", GetErrorMessage(GetLastResult()));
810                 delete pItem;
811                 delete pTableViewContextItem;
812                 return null;
813         }
814
815         pTableViewContextItem->AddControl(pItem);
816         pTableViewContextItem->SetIndividualSelectionEnabled(pItem, true);
817
818         Form* pForm  = dynamic_cast<Form*>(UiApp::GetInstance()->GetAppFrame()->GetFrame()->GetCurrentForm());
819         if (pForm != null)
820         {
821                 if (pForm->GetBounds().width == 1200 || pForm->GetBounds().height == 1200)
822                 {
823                         int controlCount = pItem->GetControlCount();
824                         if (controlCount != INIT_VALUE)
825                         {
826                                  Tizen::Ui::GridLayout* pGridLayout = dynamic_cast<Tizen::Ui::GridLayout*>(pItem->GetLandscapeLayoutN());
827                                  if (pGridLayout != null)
828                                  {
829                                          int margin = 80;
830                                          if (controlCount == 1)
831                                          {
832                                                  margin = 106;
833                                          }
834
835                                          pGridLayout->SetColumnSpacing(controlCount, margin);
836                                          pGridLayout->Update();
837                                          delete pGridLayout;
838                                  }
839                         }
840                 }
841         }
842
843         AppLogDebug("EXIT");
844         return pTableViewContextItem;
845 }
846
847 Tizen::Ui::Controls::Panel*
848 CommonUtil::CreateFlickMenuN(Tizen::Ui::IActionEventListener& listener, FlickMenuStyle menuStyle)
849 {
850         AppLogDebug("ENTER");
851         Panel* pFlickMenuPanel = new (std::nothrow) Panel();
852         String fontSizeValue = GetFontSizeValue();
853
854         if (menuStyle ==FLICK_MENU_STYLE_TYPE_01)
855         {
856                 if (fontSizeValue.Equals(STRING_FONT_SIZE_GIANT, false))
857                 {
858                         if (IsFailed(pFlickMenuPanel->Construct(IDL_SWEEP_QUICK_MENU_ITEM_PANEL_FONT_SIZE_GIANT)))
859                         {
860                                 AppLogDebug("Construct(IDL_SWEEP_QUICK_MENU_ITEM_PANEL_FONT_SIZE_GIANT) failed(%s)", GetErrorMessage(GetLastResult()));
861                                 return null;
862                         }
863                 }
864                 else if (fontSizeValue.Equals(STRING_FONT_SIZE_HUGE, false))
865                 {
866                         if (IsFailed(pFlickMenuPanel->Construct(IDL_SWEEP_QUICK_MENU_ITEM_PANEL_FONT_SIZE_HUGE)))
867                         {
868                                 AppLogDebug("Construct(IDL_SWEEP_QUICK_MENU_ITEM_PANEL_FONT_SIZE_HUGE) failed(%s)", GetErrorMessage(GetLastResult()));
869                                 return null;
870                         }
871                 }
872                 else if (fontSizeValue.Equals(STRING_FONT_SIZE_LARGE, false))
873                 {
874                         if (IsFailed(pFlickMenuPanel->Construct(IDL_SWEEP_QUICK_MENU_ITEM_PANEL_FONT_SIZE_LARGE)))
875                         {
876                                 AppLogDebug("Construct(IDL_SWEEP_QUICK_MENU_ITEM_PANEL_FONT_SIZE_LARGE) failed(%s)", GetErrorMessage(GetLastResult()));
877                                 return null;
878                         }
879                 }
880                 else
881                 {
882                         if (IsFailed(pFlickMenuPanel->Construct(IDL_SWEEP_QUICK_MENU_ITEM_PANEL_DEFAULT)))
883                         {
884                                 AppLogDebug("Construct(IDL_SWEEP_QUICK_MENU_ITEM_PANEL_DEFAULT) failed(%s)", GetErrorMessage(GetLastResult()));
885                                 return null;
886                         }
887                 }
888         }
889         else if (menuStyle == FLICK_MENU_STYLE_TYPE_02)
890         {
891                 if (fontSizeValue.Equals(STRING_FONT_SIZE_GIANT, false))
892                 {
893                         if (IsFailed(pFlickMenuPanel->Construct(IDL_SWEEP_QUICK_ALBUM_PANEL_FONT_SIZE_GIANT)))
894                         {
895                                 AppLogDebug("Construct(IDL_SWEEP_QUICK_ALBUM_PANEL_FONT_SIZE_GIANT) failed(%s)", GetErrorMessage(GetLastResult()));
896                                 return null;
897                         }
898                 }
899                 else if (fontSizeValue.Equals(STRING_FONT_SIZE_HUGE, false))
900                 {
901                         if (IsFailed(pFlickMenuPanel->Construct(IDL_SWEEP_QUICK_ALBUM_PANEL_FONT_SIZE_HUGE)))
902                         {
903                                 AppLogDebug("Construct(IDL_SWEEP_QUICK_MENU_ITEM_PANEL_FONT_SIZE_HUGE) failed(%s)", GetErrorMessage(GetLastResult()));
904                                 return null;
905                         }
906                 }
907                 else if (fontSizeValue.Equals(STRING_FONT_SIZE_LARGE, false))
908                 {
909                         if (IsFailed(pFlickMenuPanel->Construct(IDL_SWEEP_QUICK_ALBUM_PANEL_FONT_SIZE_LARGE)))
910                         {
911                                 AppLogDebug("Construct(IDL_SWEEP_QUICK_MENU_ITEM_PANEL_FONT_SIZE_LARGE) failed(%s)", GetErrorMessage(GetLastResult()));
912                                 return null;
913                         }
914                 }
915                 else
916                 {
917                         if (IsFailed(pFlickMenuPanel->Construct(IDL_SWEEP_QUICK_ALBUM_PANEL_DEFAULT)))
918                         {
919                                 AppLogDebug("Construct(IDL_SWEEP_QUICK_MENU_ITEM_PANEL_DEFAULT) failed(%s)", GetErrorMessage(GetLastResult()));
920                                 return null;
921                         }
922                 }
923         }
924         else if (menuStyle == FLICK_MENU_STYLE_TYPE_03)
925         {
926                 if (fontSizeValue.Equals(STRING_FONT_SIZE_GIANT, false))
927                 {
928                         if (IsFailed(pFlickMenuPanel->Construct(IDL_SWEEP_QUICK_PLAYALL_ITEM_PANEL_FONT_SIZE_GIANT)))
929                         {
930                                 AppLogDebug("Construct(IDL_SWEEP_QUICK_PLAYALL_ITEM_PANEL_FONT_SIZE_GIANT) failed(%s)", GetErrorMessage(GetLastResult()));
931                                 return null;
932                         }
933                 }
934                 else if (fontSizeValue.Equals(STRING_FONT_SIZE_HUGE, false))
935                 {
936                         if (IsFailed(pFlickMenuPanel->Construct(IDL_SWEEP_QUICK_PLAYALL_ITEM_PANEL_FONT_SIZE_HUGE)))
937                         {
938                                 AppLogDebug("Construct(IDL_SWEEP_QUICK_PLAYALL_ITEM_PANEL_FONT_SIZE_HUGE) failed(%s)", GetErrorMessage(GetLastResult()));
939                                 return null;
940                         }
941                 }
942                 else if (fontSizeValue.Equals(STRING_FONT_SIZE_LARGE, false))
943                 {
944                         if (IsFailed(pFlickMenuPanel->Construct(IDL_SWEEP_QUICK_PLAYALL_ITEM_PANEL_FONT_SIZE_LARGE)))
945                         {
946                                 AppLogDebug("Construct(IDL_SWEEP_QUICK_PLAYALL_ITEM_PANEL_FONT_SIZE_HUGE) failed(%s)", GetErrorMessage(GetLastResult()));
947                                 return null;
948                         }
949                 }
950                 else
951                 {
952                         if (IsFailed(pFlickMenuPanel->Construct(IDL_SWEEP_QUICK_PLAYALL_ITEM_PANEL_DEFAULT)))
953                         {
954                                 AppLogDebug("Construct(IDL_SWEEP_QUICK_PLAYALL_ITEM_PANEL_FONT_SIZE_HUGE) failed(%s)", GetErrorMessage(GetLastResult()));
955                                 return null;
956                         }
957                 }
958         }
959         else if (menuStyle == FLICK_MENU_STYLE_TYPE_04)
960         {
961                 if (fontSizeValue.Equals(STRING_FONT_SIZE_GIANT, false))
962                 {
963                         if (IsFailed(pFlickMenuPanel->Construct(IDL_SWEEP_QUICK_ITEM2_PANEL_FONT_SIZE_GIANT)))
964                         {
965                                 AppLogDebug("Construct(IDL_SWEEP_QUICK_ITEM2_PANEL_FONT_SIZE_GIANT) failed(%s)", GetErrorMessage(GetLastResult()));
966                                 return null;
967                         }
968                 }
969                 else if (fontSizeValue.Equals(STRING_FONT_SIZE_HUGE, false))
970                 {
971                         if (IsFailed(pFlickMenuPanel->Construct(IDL_SWEEP_QUICK_ITEM2_PANEL_FONT_SIZE_HUGE)))
972                         {
973                                 AppLogDebug("Construct(IDL_SWEEP_QUICK_ITEM2_PANEL_FONT_SIZE_GIANT) failed(%s)", GetErrorMessage(GetLastResult()));
974                                 return null;
975                         }
976                 }
977                 else if (fontSizeValue.Equals(STRING_FONT_SIZE_LARGE, false))
978                 {
979                         if (IsFailed(pFlickMenuPanel->Construct(IDL_SWEEP_QUICK_ITEM2_PANEL_FONT_SIZE_LARGE)))
980                         {
981                                 AppLogDebug("Construct(IDL_SWEEP_QUICK_ITEM2_PANEL_FONT_SIZE_GIANT) failed(%s)", GetErrorMessage(GetLastResult()));
982                                 return null;
983                         }
984                 }
985                 else
986                 {
987                         if (IsFailed(pFlickMenuPanel->Construct(IDL_SWEEP_QUICK_ITEM2_PANEL_DEFAULT)))
988                         {
989                                 AppLogDebug("Construct(IDL_SWEEP_QUICK_ITEM2_PANEL_FONT_SIZE_GIANT) failed(%s)", GetErrorMessage(GetLastResult()));
990                                 return null;
991                         }
992                 }
993         }
994         else
995         {
996                 AppLogDebug("EXIT");
997                 delete pFlickMenuPanel;
998                 return null;
999         }
1000
1001         if (menuStyle & FLICK_MENU_ITEM_SHARE)
1002         {
1003                 Button* pShareButton = static_cast<Button*>(pFlickMenuPanel->GetControl(IDC_SHARE_BUTTON));
1004                 pShareButton->SetText(ResourceManager::GetString(L"IDS_MUSIC_BUTTON_SHARE"));
1005                 pShareButton->SetActionId(IDA_FLICK_MENU_ITEM_SHARE);
1006                 pShareButton->AddActionEventListener(listener);
1007         }
1008
1009         if (menuStyle & FLICK_MENU_ITEM_SET_AS)
1010         {
1011                 Button* pSetButton = static_cast<Button*>(pFlickMenuPanel->GetControl(IDC_SET_AS_BUTTON));
1012                 pSetButton->SetText(ResourceManager::GetString(L"IDS_COM_SK_SET_AS"));
1013                 pSetButton->SetActionId(IDA_FLICK_MENU_ITEM_SET_AS);
1014                 pSetButton->AddActionEventListener(listener);
1015         }
1016
1017         if (menuStyle & FLICK_MENU_ITEM_ADDTO)
1018         {
1019                 Button* pAddToPlaylistButton = static_cast<Button*>(pFlickMenuPanel->GetControl(IDC_ADD_TO_BUTTON));
1020                 pAddToPlaylistButton->SetText(ResourceManager::GetString(L"IDS_MUSIC_OPT_ADD_TO"));
1021                 pAddToPlaylistButton->SetActionId(IDA_FLICK_MENU_ITEM_ADDTO);
1022                 pAddToPlaylistButton->AddActionEventListener(listener);
1023         }
1024
1025         if (menuStyle & FLICK_MENU_ITEM_DELETE)
1026         {
1027                 Button* pDeleteButton = static_cast<Button*>(pFlickMenuPanel->GetControl(IDC_BUTTON_DELETE));
1028                 pDeleteButton->SetText(ResourceManager::GetString("IDS_MUSIC_SK3_DELETE"));
1029                 pDeleteButton->SetActionId(IDA_FLICK_MENU_ITEM_DELETE);
1030                 pDeleteButton->AddActionEventListener(listener);
1031         }
1032
1033         if (menuStyle & FLICK_MENU_ITEM_PLAYALL)
1034         {
1035                 Button* pDeleteButton = static_cast<Button*>(pFlickMenuPanel->GetControl(IDC_PLAY_ALL_BUTTON));
1036                 pDeleteButton->SetText(ResourceManager::GetString("IDS_MUSIC_OPT_MOREMENU_PLAY_ALL"));
1037                 pDeleteButton->SetActionId(IDA_FLICK_MENU_ITEM_PLAYALL);
1038                 pDeleteButton->AddActionEventListener(listener);
1039         }
1040
1041         AppLogDebug("EXIT");
1042         return pFlickMenuPanel;
1043 }
1044
1045 Tizen::Base::String
1046 CommonUtil::GetStringItemSelected(int itemCount)
1047 {
1048         AppLogDebug("ENTER");
1049         String StrSelectStr = null;
1050
1051         if (itemCount > INIT_VALUE)
1052         {
1053                 if (itemCount == 1)
1054                 {
1055                         String ResSelect = ResourceManager::GetString("IDS_VR_POP_1_ITEM_SELECTED");
1056                         StrSelectStr.Format(STRING_LENGTH, ResSelect.GetPointer());
1057                 }
1058                 else
1059                 {
1060                         String ResSelect = ResourceManager::GetString("IDS_VR_POP_PD_ITEMS_SELECTED");
1061                         StrSelectStr.Format(STRING_LENGTH, ResSelect.GetPointer(), itemCount);
1062                 }
1063         }
1064 //      else
1065 //      {
1066 //              StrSelectStr.Format(STRING_LENGTH, L"Select <Noun>s");//NEED STRING
1067 //      }
1068         AppLogDebug("EXIT");
1069         return StrSelectStr;
1070 }
1071
1072 result
1073 CommonUtil::SetShowStateVariableHeightSizeControl(Tizen::Ui::Control& control, int controlHeight, bool isShow)
1074 {
1075         AppLogDebug("ENTER");
1076         CommonUtil::SetShowStateControl(control, isShow);
1077         CommonUtil::SetVariableHeightSizeControl(control, controlHeight);
1078         control.Invalidate(true);
1079         AppLogDebug("EXIT");
1080         return E_SUCCESS;
1081 }
1082
1083 void
1084 CommonUtil::SetVariableHeightSizeControl(Tizen::Ui::Control& control, int controlHeight)
1085 {
1086         AppLogDebug("ENTER");
1087         if (control.GetHeight() != controlHeight)
1088         {
1089                 control.SetSize(control.GetWidth(), controlHeight);
1090         }
1091         AppLogDebug("EXIT");
1092 }
1093
1094 Tizen::Ui::Controls::ContextMenu*
1095 CommonUtil::CreateContextMenuN(const Tizen::Ui::Control& source, Tizen::Ui::IActionEventListener& listener)
1096 {
1097         AppLogDebug("ENTER");
1098         SceneManager* pSceneManager = SceneManager::GetInstance();
1099         AppAssert(pSceneManager);
1100
1101         Scene* pScene = pSceneManager->GetCurrentScene();
1102         AppAssert(pScene);
1103         Form *pForm = pScene->GetForm();
1104         AppAssert(pForm);
1105
1106         Point convertPosition = source.ConvertToScreenPosition(Point(source.GetWidth() / 2, INIT_VALUE));
1107         convertPosition.y = convertPosition.y + source.GetHeight() / 2;
1108
1109         ContextMenuAnchorDirection direction = CONTEXT_MENU_ANCHOR_DIRECTION_DOWNWARD;
1110         if (convertPosition.y > pForm->GetHeight() / 2)
1111         {
1112                 direction = CONTEXT_MENU_ANCHOR_DIRECTION_UPWARD;
1113         }
1114
1115         ContextMenu* pContextMenu = new (std::nothrow) ContextMenu();
1116         pContextMenu->Construct(Point(INIT_VALUE, INIT_VALUE), CONTEXT_MENU_STYLE_LIST, direction);
1117         pContextMenu->SetName(L"IDC_CONTEXT_MENU");
1118         pContextMenu->AddActionEventListener(listener);
1119         pContextMenu->SetAnchorPosition(convertPosition);
1120         pContextMenu->SetMaxVisibleItemsCount(5);
1121         pContextMenu->SetShowState(true);
1122
1123         AppLogDebug("EXIT");
1124         return pContextMenu;
1125 }
1126
1127 void
1128 CommonUtil::AddContextMenuItem(Tizen::Ui::Controls::ContextMenu& contextMenu, unsigned int contextMenuItemStyle)
1129 {
1130         AppLogDebug("ENTER");
1131         if (CONTEXT_MENU_ITEM_STYLE_CALL & contextMenuItemStyle)
1132         {
1133 //              IDA_CONTEXT_MENU_ITEM_CALL
1134                 contextMenu.AddItem(ResourceManager::GetString(L"IDS_MUSIC_OPT_CALL_RINGTONE"), IDA_CONTEXT_MENU_ITEM_CALL);
1135         }
1136
1137         if (CONTEXT_MENU_ITEM_STYLE_SEARCH & contextMenuItemStyle)
1138         {
1139 //              IDA_CONTEXT_MENU_ITEM_SEARCH
1140                 contextMenu.AddItem(ResourceManager::GetString(L"IDS_COM_BODY_SEARCH"), IDA_CONTEXT_MENU_ITEM_SEARCH);
1141         }
1142
1143         if (CONTEXT_MENU_ITEM_STYLE_BLUETOOTH & contextMenuItemStyle)
1144         {
1145 //              IDA_CONTEXT_MENU_ITEM_BLUETOOTH
1146                 contextMenu.AddItem(L"Bluetooth", IDA_CONTEXT_MENU_ITEM_BLUETOOTH);//NEED STRING
1147         }
1148
1149         if (CONTEXT_MENU_ITEM_STYLE_MESSAGE & contextMenuItemStyle)
1150         {
1151 //              IDA_CONTEXT_MENU_ITEM_MESSAGE
1152                 contextMenu.AddItem(ResourceManager::GetString(L"IDS_COM_BODY_MESSAGE"), IDA_CONTEXT_MENU_ITEM_MESSAGE);
1153         }
1154
1155         if (CONTEXT_MENU_ITEM_STYLE_ALARM & contextMenuItemStyle)
1156         {
1157 //              IDA_CONTEXT_MENU_ITEM_ALARM
1158                 contextMenu.AddItem(ResourceManager::GetString(L"IDS_MUSIC_OPT_SETAS_ALARM_TONE"), IDA_CONTEXT_MENU_ITEM_ALARM);
1159         }
1160
1161         if (CONTEXT_MENU_ITEM_STYLE_EMAIL & contextMenuItemStyle)
1162         {
1163 //              IDA_CONTEXT_MENU_ITEM_EMAIL
1164                 contextMenu.AddItem(ResourceManager::GetString(L"IDS_COM_BODY_EMAIL"), IDA_CONTEXT_MENU_ITEM_EMAIL);
1165         }
1166
1167         if (CONTEXT_MENU_ITEM_STYLE_SETTINGS & contextMenuItemStyle)
1168         {
1169 //              IDA_CONTEXT_MENU_ITEM_SETTINGS
1170                 contextMenu.AddItem(ResourceManager::GetString(L"IDS_COM_BODY_SETTINGS"), IDA_CONTEXT_MENU_ITEM_SETTINGS);
1171         }
1172
1173         if (CONTEXT_MENU_ITEM_STYLE_FOLDER_VIEW & contextMenuItemStyle)
1174         {
1175 //              IDA_CONTEXT_MENU_ITEM_FOLDER_VIEW
1176                 contextMenu.AddItem(ResourceManager::GetString(L"IDS_MSGF_SK3_FOLDER_VIEW"), IDA_CONTEXT_MENU_ITEM_FOLDER_VIEW);
1177         }
1178
1179         if (CONTEXT_MENU_ITEM_STYLE_CREATE_PLAYLIST & contextMenuItemStyle)
1180         {
1181 //              IDA_CONTEXT_MENU_ITEM_CREATE_PLAYLIST
1182                 contextMenu.AddItem(ResourceManager::GetString(L"IDS_MUSIC_OPT_CREATE_PLAYLIST"), IDA_CONTEXT_MENU_ITEM_CREATE_PLAYLIST);
1183         }
1184
1185         if (CONTEXT_MENU_ITEM_STYLE_SHARE_VIA & contextMenuItemStyle)
1186         {
1187 //              IDA_CONTEXT_MENU_ITEM_SHARE_VIA
1188                 contextMenu.AddItem(ResourceManager::GetString(L"IDS_IV_BODY_SHARE_VIA"), IDA_CONTEXT_MENU_ITEM_SHARE_VIA);
1189         }
1190
1191         if (CONTEXT_MENU_ITEM_STYLE_EDIT & contextMenuItemStyle)
1192         {
1193 //              IDA_CONTEXT_MENU_ITEM_EDIT
1194                 contextMenu.AddItem(ResourceManager::GetString(L"IDS_COM_BODY_EDIT"), IDA_CONTEXT_MENU_ITEM_EDIT);
1195         }
1196
1197         if (CONTEXT_MENU_ITEM_STYLE_CALLER & contextMenuItemStyle)
1198         {
1199 //              IDA_CONTEXT_MENU_ITEM_CALLER
1200                 contextMenu.AddItem(ResourceManager::GetString(L"IDS_MUSIC_OPT_SETAS_CALLER_RINGTONE"), IDA_CONTEXT_MENU_ITEM_CALLER);
1201         }
1202
1203         if (CONTEXT_MENU_ITEM_STYLE_GO_TO_LIBARY & contextMenuItemStyle)
1204         {
1205 //              IDA_CONTEXT_MENU_ITEM_GO_TO_LIBARY
1206                 contextMenu.AddItem(ResourceManager::GetString(L"IDS_MUSIC_OPT_GO_TO_LIBRARY"), IDA_CONTEXT_MENU_ITEM_GO_TO_LIBARY);
1207         }
1208
1209         if (CONTEXT_MENU_ITEM_STYLE_ADD & contextMenuItemStyle)
1210         {
1211 //              IDA_CONTEXT_MENU_ITEM_STYLE_ADD
1212                 contextMenu.AddItem(ResourceManager::GetString(L"IDS_MUSIC_OPT_ADD"), IDA_CONTEXT_MENU_ITEM_STYLE_ADD);
1213         }
1214
1215         if (CONTEXT_MENU_ITEM_STYLE_ADD_TO_PLAYLIST & contextMenuItemStyle)
1216         {
1217 //              IDA_CONTEXT_MENU_ITEM_STYLE_ADD_TO_PLAYLIST
1218                 contextMenu.AddItem(ResourceManager::GetString(L"IDS_MUSIC_BODY_ADD_TO_PLAYLIST"), IDA_CONTEXT_MENU_ITEM_STYLE_ADD_TO_PLAYLIST);
1219         }
1220
1221         if (CONTEXT_MENU_ITEM_STYLE_SET_AS & contextMenuItemStyle)
1222         {
1223 //              IDA_CONTEXT_MENU_ITEM_STYLE_SET_AS
1224                 contextMenu.AddItem(ResourceManager::GetString(L"IDS_MUSIC_SK3_SET_AS"), IDA_CONTEXT_MENU_ITEM_STYLE_SET_AS);
1225         }
1226
1227         if (CONTEXT_MENU_ITEM_STYLE_DETAILS & contextMenuItemStyle)
1228         {
1229 //              IDA_CONTEXT_MENU_ITEM_STYLE_DETAILS
1230                 contextMenu.AddItem(ResourceManager::GetString(L"IDS_COM_BODY_DETAILS"), IDA_CONTEXT_MENU_ITEM_STYLE_DETAILS);
1231         }
1232
1233         if (CONTEXT_MENU_ITEM_STYLE_SOUND_PATH & contextMenuItemStyle)
1234         {
1235 //              IDA_CONTEXT_MENU_ITEM_STYLE_SOUND_PATH
1236                 contextMenu.AddItem(L"Sound Path", IDA_CONTEXT_MENU_ITEM_STYLE_SOUND_PATH);//NEED STRING
1237         }
1238         contextMenu.SetFocusable(true);
1239         AppLogDebug("EXIT");
1240 }
1241
1242 Tizen::Ui::Controls::OptionMenu*
1243 CommonUtil::CreateOptionMenuN(const Tizen::Ui::Control& source, Tizen::Ui::IActionEventListener& listener)
1244 {
1245         AppLogDebug("ENTER");
1246
1247         OptionMenu* pOptionMenu = new (std::nothrow) OptionMenu();
1248         pOptionMenu->Construct();
1249         pOptionMenu->SetName(L"IDC_OPTION_MENU");
1250         pOptionMenu->AddActionEventListener(listener);
1251         pOptionMenu->SetMaxVisibleItemsCount(5);
1252         pOptionMenu->SetShowState(true);
1253         pOptionMenu->SetFocusable(true);
1254         AppLogDebug("EXIT");
1255         return pOptionMenu;
1256 }
1257
1258 void
1259 CommonUtil::AddOptionMenuItem(Tizen::Ui::Controls::OptionMenu& optionMenu, unsigned int optionMenuItemStyle)
1260 {
1261         AppLogDebug("ENTER");
1262         if (CONTEXT_MENU_ITEM_STYLE_CALL & optionMenuItemStyle)
1263         {
1264 //              IDA_CONTEXT_MENU_ITEM_CALL
1265                 optionMenu.AddItem(ResourceManager::GetString(L"IDS_MUSIC_OPT_CALL_RINGTONE"), IDA_CONTEXT_MENU_ITEM_CALL);
1266         }
1267
1268         if (CONTEXT_MENU_ITEM_STYLE_SEARCH & optionMenuItemStyle)
1269         {
1270 //              IDA_CONTEXT_MENU_ITEM_SEARCH
1271                 optionMenu.AddItem(ResourceManager::GetString(L"IDS_COM_BODY_SEARCH"), IDA_CONTEXT_MENU_ITEM_SEARCH);
1272         }
1273
1274         if (CONTEXT_MENU_ITEM_STYLE_BLUETOOTH & optionMenuItemStyle)
1275         {
1276 //              IDA_CONTEXT_MENU_ITEM_BLUETOOTH
1277                 optionMenu.AddItem(L"Bluetooth", IDA_CONTEXT_MENU_ITEM_BLUETOOTH);//NEED STRING
1278         }
1279
1280         if (CONTEXT_MENU_ITEM_STYLE_MESSAGE & optionMenuItemStyle)
1281         {
1282 //              IDA_CONTEXT_MENU_ITEM_MESSAGE
1283                 optionMenu.AddItem(ResourceManager::GetString(L"IDS_COM_BODY_MESSAGE"), IDA_CONTEXT_MENU_ITEM_MESSAGE);
1284         }
1285
1286         if (CONTEXT_MENU_ITEM_STYLE_ALARM & optionMenuItemStyle)
1287         {
1288 //              IDA_CONTEXT_MENU_ITEM_ALARM
1289                 optionMenu.AddItem(ResourceManager::GetString(L"IDS_MUSIC_OPT_SETAS_ALARM_TONE"), IDA_CONTEXT_MENU_ITEM_ALARM);
1290         }
1291
1292         if (CONTEXT_MENU_ITEM_STYLE_EMAIL & optionMenuItemStyle)
1293         {
1294 //              IDA_CONTEXT_MENU_ITEM_EMAIL
1295                 optionMenu.AddItem(ResourceManager::GetString(L"IDS_COM_BODY_EMAIL"), IDA_CONTEXT_MENU_ITEM_EMAIL);
1296         }
1297
1298         if (CONTEXT_MENU_ITEM_STYLE_SETTINGS & optionMenuItemStyle)
1299         {
1300 //              IDA_CONTEXT_MENU_ITEM_SETTINGS
1301                 optionMenu.AddItem(ResourceManager::GetString(L"IDS_COM_BODY_SETTINGS"), IDA_CONTEXT_MENU_ITEM_SETTINGS);
1302         }
1303
1304         if (CONTEXT_MENU_ITEM_STYLE_FOLDER_VIEW & optionMenuItemStyle)
1305         {
1306 //              IDA_CONTEXT_MENU_ITEM_FOLDER_VIEW
1307                 optionMenu.AddItem(ResourceManager::GetString(L"IDS_MSGF_SK3_FOLDER_VIEW"), IDA_CONTEXT_MENU_ITEM_FOLDER_VIEW);
1308         }
1309
1310         if (CONTEXT_MENU_ITEM_STYLE_CREATE_PLAYLIST & optionMenuItemStyle)
1311         {
1312 //              IDA_CONTEXT_MENU_ITEM_CREATE_PLAYLIST
1313                 optionMenu.AddItem(ResourceManager::GetString(L"IDS_MUSIC_OPT_CREATE_PLAYLIST"), IDA_CONTEXT_MENU_ITEM_CREATE_PLAYLIST);
1314         }
1315
1316         if (CONTEXT_MENU_ITEM_STYLE_SHARE_VIA & optionMenuItemStyle)
1317         {
1318 //              IDA_CONTEXT_MENU_ITEM_SHARE_VIA
1319                 optionMenu.AddItem(ResourceManager::GetString(L"IDS_IV_BODY_SHARE_VIA"), IDA_CONTEXT_MENU_ITEM_SHARE_VIA);
1320         }
1321
1322         if (CONTEXT_MENU_ITEM_STYLE_EDIT & optionMenuItemStyle)
1323         {
1324 //              IDA_CONTEXT_MENU_ITEM_EDIT
1325                 optionMenu.AddItem(ResourceManager::GetString(L"IDS_COM_BODY_EDIT"), IDA_CONTEXT_MENU_ITEM_EDIT);
1326         }
1327
1328         if (CONTEXT_MENU_ITEM_STYLE_CALLER & optionMenuItemStyle)
1329         {
1330 //              IDA_CONTEXT_MENU_ITEM_CALLER
1331                 optionMenu.AddItem(ResourceManager::GetString(L"IDS_MUSIC_OPT_SETAS_CALLER_RINGTONE"), IDA_CONTEXT_MENU_ITEM_CALLER);
1332         }
1333
1334         if (CONTEXT_MENU_ITEM_STYLE_GO_TO_LIBARY & optionMenuItemStyle)
1335         {
1336 //              IDA_CONTEXT_MENU_ITEM_GO_TO_LIBARY
1337                 optionMenu.AddItem(ResourceManager::GetString(L"IDS_MUSIC_OPT_GO_TO_LIBRARY"), IDA_CONTEXT_MENU_ITEM_GO_TO_LIBARY);
1338         }
1339
1340         if (CONTEXT_MENU_ITEM_STYLE_ADD & optionMenuItemStyle)
1341         {
1342 //              IDA_CONTEXT_MENU_ITEM_STYLE_ADD
1343                 optionMenu.AddItem(ResourceManager::GetString(L"IDS_MUSIC_OPT_ADD"), IDA_CONTEXT_MENU_ITEM_STYLE_ADD);
1344         }
1345
1346         if (CONTEXT_MENU_ITEM_STYLE_ADD_TO_PLAYLIST & optionMenuItemStyle)
1347         {
1348 //              IDA_CONTEXT_MENU_ITEM_STYLE_ADD_TO_PLAYLIST
1349                 optionMenu.AddItem(ResourceManager::GetString(L"IDS_MUSIC_BODY_ADD_TO_PLAYLIST"), IDA_CONTEXT_MENU_ITEM_STYLE_ADD_TO_PLAYLIST);
1350         }
1351
1352         if (CONTEXT_MENU_ITEM_STYLE_SET_AS & optionMenuItemStyle)
1353         {
1354 //              IDA_CONTEXT_MENU_ITEM_STYLE_SET_AS
1355                 optionMenu.AddItem(ResourceManager::GetString(L"IDS_MUSIC_SK3_SET_AS"), IDA_CONTEXT_MENU_ITEM_STYLE_SET_AS);
1356         }
1357
1358         if (CONTEXT_MENU_ITEM_STYLE_DETAILS & optionMenuItemStyle)
1359         {
1360 //              IDA_CONTEXT_MENU_ITEM_STYLE_DETAILS
1361                 optionMenu.AddItem(ResourceManager::GetString(L"IDS_COM_BODY_DETAILS"), IDA_CONTEXT_MENU_ITEM_STYLE_DETAILS);
1362         }
1363
1364         if (CONTEXT_MENU_ITEM_STYLE_SOUND_PATH & optionMenuItemStyle)
1365         {
1366 //              IDA_CONTEXT_MENU_ITEM_STYLE_SOUND_PATH
1367                 optionMenu.AddItem(L"Sound Path", IDA_CONTEXT_MENU_ITEM_STYLE_SOUND_PATH);//NEED STRING
1368         }
1369         AppLogDebug("EXIT");
1370 }
1371
1372 bool
1373 CommonUtil::IsVaildContextMenuItemActionId(int actionId)
1374 {
1375         AppLogDebug("ENTER");
1376         if (actionId >= IDA_CONTEXT_MENU_ITEM_BASE && actionId < IDA_CONTEXT_MENU_ITEM_MAX)
1377         {
1378                 return true;
1379         }
1380         AppLogDebug("EXIT");
1381         return false;
1382 }
1383
1384 bool
1385 CommonUtil::IsVaildCommonPopupActionId(int actionId)
1386 {
1387         AppLogDebug("ENTER");
1388         if (actionId >= IDA_COMMON_POPUP_BASE && actionId < IDA_COMMON_POPUP_MAX)
1389         {
1390                 return true;
1391         }
1392         AppLogDebug("EXIT");
1393         return false;
1394 }
1395
1396 void
1397 CommonUtil::ShowContextMenu(Tizen::Ui::Controls::ContextMenu& contextMenu, bool isShow)
1398 {
1399         AppLogDebug("ENTER");
1400         CommonUtil::SetShowStateControl(contextMenu, isShow);
1401         if (isShow)
1402         {
1403                 contextMenu.Show();
1404         }
1405         AppLogDebug("EXIT");
1406 }
1407
1408 void
1409 CommonUtil::ShowOptionMenu(Tizen::Ui::Controls::OptionMenu& optionMenu, bool isShow)
1410 {
1411         AppLogDebug("ENTER");
1412         CommonUtil::SetShowStateControl(optionMenu, isShow);
1413         if (isShow)
1414         {
1415                 optionMenu.Show();
1416         }
1417         AppLogDebug("EXIT");
1418 }
1419
1420 result
1421 CommonUtil::SetShowStateControl(Tizen::Ui::Control& control, bool isShow)
1422 {
1423         AppLogDebug("ENTER");
1424         if (control.GetShowState() != isShow)
1425         {
1426                 control.SetShowState(isShow);
1427                 control.Invalidate(true);
1428                 return E_SUCCESS;
1429         }
1430
1431         AppLogDebug("EXIT");
1432         return E_FAILURE;
1433 }
1434
1435 void
1436 CommonUtil::SetSimpleTitleStyle(Tizen::Ui::Controls::Header& pHeader, const Tizen::Base::String& titleText)
1437 {
1438         AppLogDebug("ENTER");
1439         pHeader.RemoveAllButtons();
1440         pHeader.RemoveAllItems();
1441
1442         pHeader.SetStyle(HEADER_STYLE_TITLE);
1443         pHeader.SetTitleText(titleText);
1444         pHeader.SetTitleTextColor(COLOR_HEADER_TITLE_TEXT);
1445         pHeader.Invalidate(true);
1446         AppLogDebug("EXIT");
1447 }
1448
1449 void
1450 CommonUtil::SetTitleWithSearchIconStyle(Tizen::Ui::Controls::Header& pHeader, const Tizen::Base::String& titleText,
1451                                                                                                                                         const Tizen::Base::String& descriptionText, int actionId)
1452 {
1453         AppLogDebug("ENTER");
1454         pHeader.RemoveAllButtons();
1455         pHeader.RemoveAllItems();
1456
1457         pHeader.SetStyle(HEADER_STYLE_TITLE);
1458         pHeader.SetTitleText(titleText);
1459
1460         ButtonItem buttonItem;
1461         buttonItem.Construct(BUTTON_ITEM_STYLE_ICON, actionId);
1462
1463 //      CommonUtil::SetButtonItemIcon(buttonItem, L"T02_icon_search.png", L"T02_icon_search.png", L"T02_icon_search.png");
1464         pHeader.SetButton(BUTTON_POSITION_RIGHT, buttonItem);
1465         pHeader.SetTitleTextColor(COLOR_HEADER_TITLE_TEXT);
1466         AppLogDebug("EXIT");
1467 }
1468
1469 void
1470 CommonUtil::SetTitleDescriptionWithIconStyle(Tizen::Ui::Controls::Header& pHeader, const Tizen::Base::String& titleText,
1471                                                                                         Tizen::Base::String& descriptionText, int actionId, Tizen::Graphics::Bitmap* icon)
1472 {
1473         AppLogDebug("ENTER");
1474         pHeader.RemoveAllButtons();
1475         pHeader.RemoveAllItems();
1476
1477         pHeader.SetStyle(HEADER_STYLE_TITLE);
1478         pHeader.SetTitleText(titleText);
1479         pHeader.SetDescriptionText(descriptionText);
1480
1481         ButtonItem buttonItem;
1482         buttonItem.Construct(BUTTON_ITEM_STYLE_ICON, actionId);
1483
1484 //      CommonUtil::SetIconButtonItem(buttonItem, icon, icon, null);
1485 //      CommonUtil::SetButtonItemIcon(buttonItem, L"T02_icon_search.png", L"T02_icon_search.png", L"T02_icon_search.png");
1486         pHeader.SetButton(BUTTON_POSITION_RIGHT, buttonItem);
1487
1488         pHeader.SetTitleTextColor(COLOR_HEADER_TITLE_TEXT);
1489         pHeader.SetDescriptionTextColor(COLOR_HEADER_DESCRIPTION_TEXT);
1490         AppLogDebug("EXIT");
1491 }
1492
1493 void
1494 CommonUtil::SetTitleDescriptionStyle(Tizen::Ui::Controls::Header& pHeader, const Tizen::Base::String& titleText, const Tizen::Base::String& descriptionText)
1495 {
1496         AppLogDebug("ENTER");
1497         pHeader.RemoveAllButtons();
1498         pHeader.RemoveAllItems();
1499
1500         pHeader.SetStyle(HEADER_STYLE_TITLE);
1501         pHeader.SetTitleText(titleText);
1502         pHeader.SetDescriptionText(descriptionText);
1503
1504         pHeader.SetTitleTextColor(COLOR_HEADER_TITLE_TEXT);
1505         pHeader.SetDescriptionTextColor(COLOR_HEADER_DESCRIPTION_TEXT);
1506         AppLogDebug("EXIT");
1507 }
1508
1509 Tizen::Ui::Controls::Footer*
1510 CommonUtil::CreateContentListFooter(const Tizen::Ui::Controls::Form& form)
1511 {
1512         AppLogDebug("ENTER");
1513         Footer* pFooter = form.GetFooter();
1514         if (pFooter == null)
1515         {
1516                 AppLogDebug("EXIT");
1517                 return null;
1518         }
1519
1520 #if 0
1521         ButtonItem AddButtonItem;
1522         ButtonItem backButtonItem;
1523         FooterItem searchButtonItem;
1524
1525         AddButtonItem.Construct(BUTTON_ITEM_STYLE_ICON, IDA_FOOTER_BUTTON_ADD_TO_PLAYLIST);
1526         AddButtonItem.SetIcon(BUTTON_ITEM_STATUS_NORMAL, pAddButtonImage);
1527
1528         backButtonItem.Construct(BUTTON_ITEM_STYLE_ICON, IDA_FOOTER_BUTTON_BACK);
1529         backButtonItem.SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBackButtonImage);
1530
1531         searchButtonItem.Construct(IDA_FOOTER_BUTTON_SEARCH);
1532         searchButtonItem.SetIcon(FOOTER_ITEM_STATUS_NORMAL, pSearchButtonImage);
1533
1534         pFooter->SetStyle(FOOTER_STYLE_SEGMENTED_ICON);
1535
1536         pFooter->SetButton(BUTTON_POSITION_LEFT, AddButtonItem);
1537         pFooter->SetButton(BUTTON_POSITION_RIGHT, backButtonItem);
1538         pFooter->AddItem(searchButtonItem);
1539 #else
1540         FooterItem AddButtonItem;
1541         FooterItem searchButtonItem;
1542
1543         AddButtonItem.Construct(IDA_FOOTER_BUTTON_ADD_TO_PLAYLIST);
1544         AddButtonItem.SetText(ResourceManager::GetString(L"IDS_MUSIC_BODY_ADD_TO_PLAYLIST"));
1545
1546         searchButtonItem.Construct(IDA_FOOTER_BUTTON_SEARCH);
1547         searchButtonItem.SetText(ResourceManager::GetString(L"IDS_COM_BODY_SEARCH"));
1548
1549         pFooter->SetStyle(FOOTER_STYLE_BUTTON_ICON_TEXT);
1550
1551         pFooter->AddItem(AddButtonItem);
1552         pFooter->AddItem(searchButtonItem);
1553 #endif
1554
1555         AppLogDebug("EXIT");
1556         return pFooter;
1557 }
1558
1559 Tizen::Ui::Controls::Footer*
1560 CommonUtil::CreatePlaylistEditFooter(const Tizen::Ui::Controls::Form& form)
1561 {
1562         AppLogDebug("ENTER");
1563         Footer* pFooter = form.GetFooter();
1564         if (pFooter == null)
1565         {
1566                 AppLogDebug("EXIT");
1567                 return null;
1568         }
1569
1570         FooterItem deleteButtonItem;
1571         FooterItem cancelButtonItem;
1572
1573         deleteButtonItem.Construct(IDA_FOOTER_BUTTON_DELETE);
1574         deleteButtonItem.SetText(ResourceManager::GetString(L"IDS_MUSIC_OPT_DELETE"));
1575
1576         cancelButtonItem.Construct(IDA_FOOTER_BUTTON_CANCEL);
1577         cancelButtonItem.SetText(ResourceManager::GetString(L"IDS_COM_BODY_EDIT_CANCEL"));
1578
1579         pFooter->SetStyle(FOOTER_STYLE_BUTTON_ICON_TEXT);
1580
1581         pFooter->AddItem(deleteButtonItem);
1582         pFooter->AddItem(cancelButtonItem);
1583
1584         AppLogDebug("EXIT");
1585         return pFooter;
1586 }
1587
1588 Tizen::Ui::Controls::Footer*
1589 CommonUtil::CreateDefaultPlaylistContentListFooter(const Tizen::Ui::Controls::Form& form)
1590 {
1591         AppLogDebug("ENTER");
1592         Footer* pFooter = form.GetFooter();
1593         if (pFooter == null)
1594         {
1595                 AppLogDebug("EXIT");
1596                 return null;
1597         }
1598
1599         FooterItem editButtonItem;
1600         FooterItem createPlaylistButtonItem;
1601         FooterItem searchButtonItem;
1602
1603         editButtonItem.Construct(IDA_FOOTER_BUTTON_EDIT);
1604         editButtonItem.SetText(ResourceManager::GetString(L"IDS_COM_BODY_EDIT"));
1605         createPlaylistButtonItem.Construct(IDA_FOOTER_BUTTON_CREATE_PLAYLIST);
1606         createPlaylistButtonItem.SetText(ResourceManager::GetString(L"IDS_MUSIC_BODY_CREATE_PLAYLIST"));
1607
1608         searchButtonItem.Construct(IDA_FOOTER_BUTTON_SEARCH);
1609         searchButtonItem.SetText(ResourceManager::GetString(L"IDS_COM_BODY_SEARCH"));
1610
1611         pFooter->SetStyle(FOOTER_STYLE_BUTTON_ICON_TEXT);
1612
1613         pFooter->AddItem(editButtonItem);
1614         pFooter->AddItem(createPlaylistButtonItem);
1615         pFooter->AddItem(searchButtonItem);
1616
1617         AppLogDebug("EXIT");
1618         return pFooter;
1619 }
1620
1621 Tizen::Ui::Controls::Footer*
1622 CommonUtil::CreateUserPlaylistContentListFooter(const Tizen::Ui::Controls::Form& form)
1623 {
1624         AppLogDebug("ENTER");
1625         Footer* pFooter = form.GetFooter();
1626         if (pFooter == null)
1627         {
1628                 AppLogDebug("EXIT");
1629                 return null;
1630         }
1631
1632         FooterItem editButtonItem;
1633         FooterItem AddButtonItem;
1634 //      FooterItem searchButtonItem;
1635
1636         editButtonItem.Construct(IDA_FOOTER_BUTTON_EDIT);
1637         editButtonItem.SetText(ResourceManager::GetString(L"IDS_COM_BODY_EDIT"));
1638
1639         AddButtonItem.Construct(IDA_FOOTER_BUTTON_ADD_TO_PLAYLIST);
1640         AddButtonItem.SetText(ResourceManager::GetString(L"IDS_MUSIC_BODY_ADD_TO_PLAYLIST"));
1641
1642 //      searchButtonItem.Construct(IDA_FOOTER_BUTTON_SEARCH);
1643 //      searchButtonItem.SetText(ResourceManager::GetString(L"IDS_COM_BODY_SEARCH"));
1644
1645         pFooter->SetStyle(FOOTER_STYLE_BUTTON_ICON_TEXT);
1646
1647         pFooter->AddItem(editButtonItem);
1648         pFooter->AddItem(AddButtonItem);
1649 //      pFooter->AddItem(searchButtonItem);
1650
1651         AppLogDebug("EXIT");
1652         return pFooter;
1653 }
1654
1655 Tizen::Ui::Controls::Footer*
1656 CommonUtil::CreateAddtoPlaylistPickerFooter(const Tizen::Ui::Controls::Form& form)
1657 {
1658         AppLogDebug("ENTER");
1659         Footer* pFooter = form.GetFooter();
1660         if (pFooter == null)
1661         {
1662                 AppLogDebug("EXIT");
1663                 return null;
1664         }
1665
1666 #if 0
1667         ButtonItem AddButtonItem;
1668         ButtonItem CancelButtonItem;
1669
1670         AddButtonItem.Construct(BUTTON_ITEM_STYLE_ICON, IDA_FOOTER_BUTTON_ADD_TO_PLAYLIST);
1671         AddButtonItem.SetIcon(BUTTON_ITEM_STATUS_NORMAL, pAddButtonImage);
1672
1673         CancelButtonItem.Construct(BUTTON_ITEM_STYLE_ICON, IDA_FOOTER_BUTTON_CANCEL);
1674         CancelButtonItem.SetIcon(BUTTON_ITEM_STATUS_NORMAL, pCancelButtonImage);
1675
1676         pFooter->SetStyle(FOOTER_STYLE_SEGMENTED_ICON);
1677
1678         pFooter->SetButton(BUTTON_POSITION_LEFT,  AddButtonItem);
1679         pFooter->SetButton(BUTTON_POSITION_RIGHT, CancelButtonItem);
1680 #else
1681         FooterItem AddButtonItem;
1682         FooterItem CancelButtonItem;
1683
1684         AddButtonItem.Construct(IDA_FOOTER_BUTTON_ADD_TO_PLAYLIST);
1685         AddButtonItem.SetText(ResourceManager::GetString(L"IDS_MUSIC_BODY_ADD_TO_PLAYLIST"));
1686
1687         CancelButtonItem.Construct(IDA_FOOTER_BUTTON_CANCEL);
1688         CancelButtonItem.SetText(ResourceManager::GetString(L"IDS_COM_BODY_EDIT_CANCEL"));
1689
1690         pFooter->SetStyle(FOOTER_STYLE_BUTTON_ICON_TEXT);
1691
1692         pFooter->AddItem(AddButtonItem);
1693         pFooter->AddItem(CancelButtonItem);
1694 #endif
1695
1696         AppLogDebug("EXIT");
1697         return pFooter;
1698 }
1699
1700 Tizen::Ui::Controls::Footer*
1701 CommonUtil::CreateAddtoPlaylistFooter(const Tizen::Ui::Controls::Form& form)
1702 {
1703         AppLogDebug("ENTER");
1704         Footer* pFooter = form.GetFooter();
1705         if (pFooter == null)
1706         {
1707                 AppLogDebug("EXIT");
1708                 return null;
1709         }
1710
1711         FooterItem AddButtonItem;
1712
1713         AddButtonItem.Construct(IDA_FOOTER_BUTTON_ADD_TO_PLAYLIST);
1714         AddButtonItem.SetText(ResourceManager::GetString(L"IDS_MUSIC_BODY_ADD_TO_PLAYLIST"));
1715         pFooter->SetStyle(FOOTER_STYLE_BUTTON_ICON_TEXT);
1716         pFooter->AddItem(AddButtonItem);
1717
1718         AppLogDebug("EXIT");
1719         return pFooter;
1720 }
1721
1722 Tizen::Ui::Controls::Footer*
1723 CommonUtil::CreateEditContentListFooter(const Tizen::Ui::Controls::Form& form)
1724 {
1725         AppLogDebug("ENTER");
1726         Footer* pFooter = form.GetFooter();
1727         if (pFooter == null)
1728         {
1729                 AppLogDebug("EXIT");
1730                 return null;
1731         }
1732         pFooter->SetStyle(FOOTER_STYLE_BUTTON_ICON_TEXT);
1733
1734         FooterItem editButtonItem;
1735         FooterItem searchButtonItem;
1736
1737         editButtonItem.Construct(IDA_FOOTER_BUTTON_EDIT);
1738         editButtonItem.SetText(ResourceManager::GetString(L"IDS_COM_BODY_EDIT"));
1739
1740         searchButtonItem.Construct(IDA_FOOTER_BUTTON_SEARCH);
1741         searchButtonItem.SetText(ResourceManager::GetString(L"IDS_COM_BODY_SEARCH"));
1742
1743         pFooter->AddItem(editButtonItem);
1744         pFooter->AddItem(searchButtonItem);
1745
1746         AppLogDebug("EXIT");
1747         return pFooter;
1748 }
1749
1750 Tizen::Ui::Controls::Footer*
1751 CommonUtil::CreateEditFooter(const Tizen::Ui::Controls::Form& form)
1752 {
1753         AppLogDebug("ENTER");
1754         Footer* pFooter = form.GetFooter();
1755         if (pFooter == null)
1756         {
1757                 AppLogDebug("EXIT");
1758                 return null;
1759         }
1760         pFooter->SetStyle(FOOTER_STYLE_BUTTON_ICON_TEXT);
1761
1762         FooterItem editButtonItem;
1763         editButtonItem.Construct(IDA_FOOTER_BUTTON_EDIT);
1764         editButtonItem.SetText(ResourceManager::GetString(L"IDS_COM_BODY_EDIT"));
1765         pFooter->AddItem(editButtonItem);
1766
1767         AppLogDebug("EXIT");
1768         return pFooter;
1769 }
1770
1771 Tizen::Ui::Controls::Footer*
1772 CommonUtil::CreateDeleteFooter(const Tizen::Ui::Controls::Form& form)
1773 {
1774         AppLogDebug("ENTER");
1775         Footer* pFooter = form.GetFooter();
1776         if (pFooter == null)
1777         {
1778                 AppLogDebug("EXIT");
1779                 return null;
1780         }
1781         pFooter->SetStyle(FOOTER_STYLE_BUTTON_ICON_TEXT);
1782
1783         FooterItem deleteFooterItem;
1784         deleteFooterItem.Construct(IDA_FOOTER_BUTTON_DELETE);
1785         deleteFooterItem.SetText(ResourceManager::GetString(L"IDS_MUSIC_SK3_DELETE"));
1786
1787         FooterItem shareFooterItem;
1788         shareFooterItem.Construct(IDA_FOOTER_BUTTON_SHARE);
1789         shareFooterItem.SetText(ResourceManager::GetString(L"IDS_MUSIC_BUTTON_SHARE"));
1790
1791         FooterItem addToPlaylistFooterItem;
1792         addToPlaylistFooterItem.Construct(IDA_FOOTER_BUTTON_ADD_TO_PLAYLIST);
1793         addToPlaylistFooterItem.SetText(ResourceManager::GetString(L"IDS_MUSIC_BUTTON2_ADD_TO_PLAYLIST"));
1794
1795         FooterItem cancelFooterItem;
1796         cancelFooterItem.Construct(IDA_FOOTER_BUTTON_CANCEL);
1797         cancelFooterItem.SetText(ResourceManager::GetString(L"IDS_COM_BODY_EDIT_CANCEL"));
1798
1799         pFooter->AddItem(deleteFooterItem);
1800         pFooter->AddItem(shareFooterItem);
1801         pFooter->AddItem(addToPlaylistFooterItem);
1802         pFooter->AddItem(cancelFooterItem);
1803
1804         pFooter->SetItemEnabled(INDEX_FOOTER_DELETE, false);
1805         pFooter->SetItemEnabled(INDEX_FOOTER_SHARE, false);
1806         pFooter->SetItemEnabled(INDEX_FOOTER_ADDTOPLATLIST, false);
1807
1808         AppLogDebug("EXIT");
1809         return pFooter;
1810 }
1811
1812 Tizen::Ui::Controls::Footer*
1813 CommonUtil::CreateCancelFooter(const Tizen::Ui::Controls::Form& form)
1814 {
1815         AppLogDebug("ENTER");
1816         Footer* pFooter = form.GetFooter();
1817         if (pFooter == null)
1818         {
1819                 AppLogDebug("EXIT");
1820                 return null;
1821         }
1822
1823         pFooter->SetBackButton();
1824         AppLogDebug("EXIT");
1825         return pFooter;
1826 }
1827
1828 Tizen::Ui::Controls::Footer*
1829 CommonUtil::CreateBackButtonStyleFooter(const Tizen::Ui::Controls::Form& form, FooterButtonStyle style)
1830 {
1831         AppLogDebug("ENTER");
1832         Footer* pFooter = form.GetFooter();
1833         if (pFooter == null)
1834         {
1835                 AppLogDebug("EXIT");
1836                 return null;
1837         }
1838         pFooter->SetStyle(FOOTER_STYLE_BUTTON_ICON_TEXT);
1839
1840         switch (style)
1841         {
1842
1843         case STYLE_ADDTO_DELETE_ADD:
1844                 {
1845                         FooterItem footerItemAddto;
1846                         footerItemAddto.Construct(IDA_FOOTER_BUTTON_ADD_TO_PLAYLIST);
1847                         footerItemAddto.SetText(ResourceManager::GetString(L"IDS_MUSIC_OPT_ADD_TO"));
1848
1849                         FooterItem footerItemDelete;
1850                         footerItemDelete.Construct(IDA_FOOTER_BUTTON_DELETE);
1851                         footerItemDelete.SetText(ResourceManager::GetString(L"IDS_MUSIC_SK3_DELETE"));
1852
1853                         pFooter->AddItem(footerItemAddto);
1854                         pFooter->AddItem(footerItemDelete);
1855                 }
1856                 break;
1857
1858         case STYLE_SHARE_ADD:
1859                 {
1860                         FooterItem footerItemShare;
1861                         footerItemShare.Construct(IDA_FOOTER_BUTTON_SHARE);
1862                         footerItemShare.SetText(ResourceManager::GetString(L"IDS_MUSIC_BUTTON_SHARE"));
1863
1864                         pFooter->AddItem(footerItemShare);
1865                 }
1866                 break;
1867
1868         case STYLE_DELETE_ADD:
1869                 {
1870                         FooterItem footerItemDelete;
1871                         footerItemDelete.Construct(IDA_FOOTER_BUTTON_DELETE);
1872                         footerItemDelete.SetText(ResourceManager::GetString(L"IDS_MUSIC_SK3_DELETE"));
1873
1874                         pFooter->AddItem(footerItemDelete);
1875                 }
1876                 break;
1877
1878         case STYLE_ADD_ADD:
1879                 {
1880                         FooterItem footerItemAdd;
1881                         footerItemAdd.Construct(IDA_FOOTER_BUTTON_ADD);
1882                         footerItemAdd.SetText(ResourceManager::GetString(L"IDS_MUSIC_SK_ADD_LITE"));
1883
1884                         pFooter->AddItem(footerItemAdd);
1885                 }
1886                 break;
1887
1888         default:
1889                 break;
1890         }
1891         AppLogDebug("EXIT");
1892         return pFooter;
1893 }
1894
1895 void
1896 CommonUtil::SetBackButtonStyleFooter(Tizen::Ui::Controls::Footer& footer, FooterButtonStyle style)
1897 {
1898         AppLogDebug("ENTER");
1899         footer.RemoveAllButtons();
1900         footer.RemoveAllItems();
1901         footer.SetStyle(FOOTER_STYLE_BUTTON_ICON_TEXT);
1902         switch(style)
1903         {
1904         case STYLE_ADDTO_DELETE_ADD:
1905                 {
1906                         FooterItem footerItemAddto;
1907                         footerItemAddto.Construct(IDA_FOOTER_BUTTON_ADD_TO_PLAYLIST);
1908                         footerItemAddto.SetText(ResourceManager::GetString(L"IDS_MUSIC_OPT_ADD_TO"));
1909                         FooterItem footerItemDelete;
1910                         footerItemDelete.Construct(IDA_FOOTER_BUTTON_DELETE);
1911                         footerItemDelete.SetText(ResourceManager::GetString(L"IDS_MUSIC_SK3_DELETE"));
1912                         footer.AddItem(footerItemAddto);
1913                         footer.AddItem(footerItemDelete);
1914                 }
1915                 break;
1916
1917         case STYLE_SHARE_ADD:
1918                 {
1919                         FooterItem footerItemShare;
1920                         footerItemShare.Construct(IDA_FOOTER_BUTTON_SHARE);
1921                         footerItemShare.SetText(ResourceManager::GetString(L"IDS_MUSIC_BUTTON_SHARE"));
1922                         footer.AddItem(footerItemShare);
1923                 }
1924                 break;
1925
1926         case STYLE_MORE_EDIT_ADD:
1927                 {
1928                         footer.SetStyle(FOOTER_STYLE_BUTTON_ICON_TEXT);
1929
1930                         Bitmap* bitmapMore = ResourceManager::GetBitmapN(L"00_icon_more_web.png");
1931                         Bitmap* bitmapMorePress = ResourceManager::GetBitmapN(L"00_icon_more_press_web.png");
1932
1933                         ButtonItem buttonItemMore;
1934                         buttonItemMore.Construct(BUTTON_ITEM_STYLE_ICON, IDA_FOOTER_BUTTON_MORE);
1935                         buttonItemMore.SetIcon(BUTTON_ITEM_STATUS_NORMAL, bitmapMore);
1936                         buttonItemMore.SetIcon(BUTTON_ITEM_STATUS_PRESSED, bitmapMorePress);
1937                         footer.SetButton(BUTTON_POSITION_LEFT,buttonItemMore);
1938
1939                         delete bitmapMore;
1940                         delete bitmapMorePress;
1941
1942                         FooterItem editButtonItem;
1943                         editButtonItem.Construct(IDA_FOOTER_BUTTON_EDIT);
1944                         editButtonItem.SetText(ResourceManager::GetString(L"IDS_COM_BODY_EDIT"));
1945                         footer.AddItem(editButtonItem);
1946                 }
1947                 break;
1948
1949         default:
1950                 break;
1951         }
1952         AppLogDebug("EXIT");
1953 }
1954
1955 ContentInformation*
1956 CommonUtil::GetContentInformationN(const Tizen::Content::AudioContentInfo& audioContentInfo)
1957 {
1958         AppLogDebug("ENTER");
1959         ContentInformation* pContentInfoStruct = new (std::nothrow) ContentInformation();
1960
1961         pContentInfoStruct->contentId = audioContentInfo.GetContentId();
1962         pContentInfoStruct->GenreName = audioContentInfo.GetGenre();
1963         pContentInfoStruct->ArtistName = audioContentInfo.GetArtist();
1964         pContentInfoStruct->ComposerName = audioContentInfo.GetComposer();
1965         pContentInfoStruct->AlbumName = audioContentInfo.GetAlbumName();
1966         pContentInfoStruct->TitleName = audioContentInfo.GetTitle();
1967         pContentInfoStruct->ContentFilePath = audioContentInfo.GetContentPath();
1968
1969         pContentInfoStruct->ReleaseYear = audioContentInfo.GetReleaseYear();
1970         pContentInfoStruct->Duration = audioContentInfo.GetDuration();
1971         pContentInfoStruct->contentId = audioContentInfo.GetContentId();
1972
1973         AppLogDebug("EXIT");
1974         return pContentInfoStruct;
1975 }
1976
1977 void
1978 CommonUtil::CreateTableViewItem(Tizen::Ui::Container& parent,
1979                                         const Tizen::Graphics::Bitmap& thumbnail,
1980                                         const Tizen::Base::String& itemName,
1981                                         int itemCount)
1982 {
1983         AppLogDebug("ENTER");
1984
1985         int X_Gap = W_THUMBNAIL + (X_GAP_THUMBNAIL * 2);
1986         int W_Label = W_CLIENT_AREA - (X_Gap + W_CREATE_TABLE_VIEW_ITEM_COUNT_LABEL_ITEM);
1987
1988         Label* pSongThumbnailLabel = new (std::nothrow) Label();
1989         pSongThumbnailLabel->Construct(Rectangle(X_GAP_THUMBNAIL, Y_GAP_THUMBNAIL, W_THUMBNAIL, H_THUMBNAIL), L"");
1990         pSongThumbnailLabel->SetBackgroundBitmap(thumbnail);
1991         pSongThumbnailLabel->SetName(L"pSongThumbnailLabel");
1992
1993         parent.AddControl(pSongThumbnailLabel);
1994
1995         Label* pSongNameLabel = new (std::nothrow) Label();
1996         pSongNameLabel->Construct(Rectangle(X_Gap, Y_CREATE_TABLE_VIEW_ITEM, W_Label, H_CREATE_TABLE_VIEW_ITEM), L"");
1997         pSongNameLabel->SetTextConfig(FONT_SIZE, LABEL_TEXT_STYLE_NORMAL);
1998         pSongNameLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
1999         pSongNameLabel->SetText(itemName);
2000
2001         parent.AddControl(pSongNameLabel);
2002
2003         Label* pSongTimeLabel = new (std::nothrow) Label();
2004         pSongTimeLabel->Construct(Rectangle(pSongNameLabel->GetWidth() + X_Gap, pSongNameLabel->GetY(), W_CREATE_TABLE_VIEW_ITEM_COUNT_LABEL_ITEM, H_CREATE_TABLE_VIEW_ITEM), L"");
2005         pSongTimeLabel->SetTextConfig(FONT_SIZE - 2, LABEL_TEXT_STYLE_NORMAL);
2006         pSongTimeLabel->SetTextHorizontalAlignment(ALIGNMENT_RIGHT);
2007         pSongTimeLabel->SetText(CommonUtil::SetSongsString(itemCount));
2008
2009         parent.AddControl(pSongTimeLabel);
2010         AppLogDebug("EXIT");
2011 }
2012
2013 result
2014 CommonUtil::CreateEditListTableViewItem(Tizen::Ui::Container& parent,
2015                                                 const Tizen::Graphics::Bitmap& thumbnail,
2016                                                 const Tizen::Base::String& itemName,
2017                                                 int itemCount)
2018 {
2019         AppLogDebug("ENTER");
2020         result r = E_SUCCESS;
2021
2022         int W_Label = W_CLIENT_AREA - (W_TABLE_VIEW_MARK + W_THUMBNAIL + W_CREATE_TABLE_VIEW_ITEM_COUNT_LABEL_ITEM);
2023
2024         Label* pSongThumbnailLabel = new (std::nothrow) Label();
2025         pSongThumbnailLabel->Construct(Rectangle(0, Y_GAP_THUMBNAIL, W_THUMBNAIL, H_THUMBNAIL), L"");
2026         pSongThumbnailLabel->SetBackgroundBitmap(thumbnail);
2027         pSongThumbnailLabel->SetName(L"pSongThumbnailLabel");
2028
2029         Label* pSongNameLabel = new (std::nothrow) Label();
2030         pSongNameLabel->Construct(Rectangle(pSongThumbnailLabel->GetWidth(), Y_CREATE_TABLE_VIEW_ITEM, W_Label, H_CREATE_TABLE_VIEW_ITEM), L"");
2031         pSongNameLabel->SetTextConfig(FONT_SIZE + 2, LABEL_TEXT_STYLE_NORMAL);
2032         pSongNameLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
2033         pSongNameLabel->SetText(itemName);
2034
2035         Label* pSongCountLabel = new (std::nothrow) Label();
2036         pSongCountLabel->Construct(Rectangle(pSongNameLabel->GetWidth() + W_THUMBNAIL, pSongNameLabel->GetY(), W_CREATE_TABLE_VIEW_ITEM_COUNT_LABEL_ITEM, H_CREATE_TABLE_VIEW_ITEM), L"");
2037         pSongCountLabel->SetTextConfig(FONT_SIZE - 2, LABEL_TEXT_STYLE_NORMAL);
2038         pSongCountLabel->SetTextHorizontalAlignment(ALIGNMENT_RIGHT);
2039         pSongCountLabel->SetText(CommonUtil::SetSongsString(itemCount));
2040
2041         parent.AddControl(pSongThumbnailLabel);
2042         parent.AddControl(pSongNameLabel);
2043         parent.AddControl(pSongCountLabel);
2044         AppLogDebug("EXIT");
2045         return r;
2046 }
2047
2048 result
2049 CommonUtil::CreateTableViewContextItem(Tizen::Ui::Controls::TableViewContextItem& parent, Tizen::Ui::IActionEventListener& listener)
2050 {
2051         AppLogDebug("ENTER");
2052         Button* pAddToPlaylistButton = new (std::nothrow) Button();
2053         pAddToPlaylistButton->Construct(Rectangle(X_GAP_CONTEXT_ITME, Y_GAP_CONTEXT_ITEM, parent.GetWidth() - (X_GAP_CONTEXT_ITME * 2), parent.GetHeight() - (Y_GAP_CONTEXT_ITEM * 2)));
2054         pAddToPlaylistButton->SetText(ResourceManager::GetString("IDS_MUSIC_BODY_ADD_TO_PLAYLIST"));
2055         pAddToPlaylistButton->SetTextSize(FONT_SIZE);
2056         pAddToPlaylistButton->SetActionId(IDA_FLICK_BUTTON_ADD_TO_PALYLIST);
2057         pAddToPlaylistButton->AddActionEventListener(listener);
2058
2059         parent.SetIndividualSelectionEnabled(pAddToPlaylistButton, true);
2060         parent.AddControl(pAddToPlaylistButton);
2061
2062         AppLogDebug("EXIT");
2063         return E_SUCCESS;
2064 }
2065
2066 Tizen::Ui::Controls::TableView*
2067 CommonUtil::CreateEditorTableView(int width, int height)
2068 {
2069         AppLogDebug("ENTER");
2070         TableView* pTableView = new (std::nothrow) TableView();
2071         pTableView->Construct(Rectangle(INIT_VALUE, H_SELECT_ALL_BUTTON, width, height - H_SELECT_ALL_BUTTON),
2072                                         true,
2073                                         TABLE_VIEW_SCROLL_BAR_STYLE_FADE_OUT);
2074         AppLogDebug("EXIT");
2075         return pTableView;
2076 }
2077
2078 Tizen::Ui::Controls::TableView*
2079 CommonUtil::CreateTableView(int width, int height)
2080 {
2081         AppLogDebug("ENTER");
2082         TableView* pTableView = new (std::nothrow) TableView();
2083         pTableView->Construct(Rectangle(0, 0, width, height), true, TABLE_VIEW_SCROLL_BAR_STYLE_FAST_SCROLL);
2084
2085         String retCountry = null;
2086         String indexText = null;
2087
2088         Tizen::System::SettingInfo::GetValue("http://tizen.org/setting/locale.country", retCountry);
2089         if (retCountry.CompareTo("eng_GB") == 0)
2090         {
2091                 indexText.Append(L"ABCDEFGHIJKLMNOPQRSTUVWXYZ");
2092         }
2093         else if(retCountry.CompareTo("kor_KR") == 0)
2094         {
2095 //              indexText.Append(L"ㄱㄲㄴㄷㄸㄹㅁㅂㅃㅅㅆㅇㅈㅉㅊㅋㅌㅍㅎ");
2096                 indexText.Append(L"ABCDEFGHIJKLMNOPQRSTUVWXYZ");
2097         }
2098
2099         indexText.Append(L"#");
2100         indexText.Append(L"0");
2101
2102         pTableView->SetFastScrollIndex(indexText, false);
2103         AppLogDebug("EXIT");
2104         return pTableView;
2105 }
2106
2107 result
2108 CommonUtil::CreateContentPikerTableViewItem(Tizen::Ui::Controls::TableViewItem& parent, const Tizen::Base::String& songName, const Tizen::Base::String& songTime)
2109 {
2110         AppLogDebug("ENTER");
2111         Label* pSongNameLabel = new (std::nothrow) Label();
2112         pSongNameLabel->Construct(Rectangle(0, Y_GAP_CONTENT_PIKER_ITEM, W_SONG_TITLE_CONTENT_PIKER_ITEM, H_SONG_TITLE_CONTENT_PIKER_ITEM), songName);
2113         pSongNameLabel->SetTextConfig(FONT_SIZE, LABEL_TEXT_STYLE_NORMAL);
2114         pSongNameLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
2115
2116         Label* pSongTimeLabel = new (std::nothrow) Label();
2117         pSongTimeLabel->Construct(Rectangle(pSongNameLabel->GetWidth(), Y_GAP_CONTENT_PIKER_ITEM, W_SONG_TIME_CONTENT_PIKER_ITEM, pSongNameLabel->GetHeight()), songTime);
2118         pSongTimeLabel->SetTextConfig(FONT_SIZE, LABEL_TEXT_STYLE_NORMAL);
2119         pSongTimeLabel->SetTextHorizontalAlignment(ALIGNMENT_RIGHT);
2120
2121         parent.AddControl(pSongNameLabel);
2122         parent.AddControl(pSongTimeLabel);
2123
2124         AppLogDebug("EXIT");
2125         return E_SUCCESS;
2126 }
2127
2128 Tizen::Ui::Controls::CheckButton*
2129 CommonUtil::CreateSelectAllCheckedButton(int width)
2130 {
2131         AppLogDebug("ENTER");
2132         CheckButton* pCheckButton = new (std::nothrow) CheckButton();
2133         pCheckButton->Construct(Rectangle(INIT_VALUE, INIT_VALUE, width, H_SELECT_ALL_BUTTON),
2134                                                         CHECK_BUTTON_STYLE_MARK,
2135                                                         BACKGROUND_STYLE_DEFAULT,
2136                                                         false,
2137                                                         ResourceManager::GetString("IDS_COM_BODY_SELECT_ALL"),
2138                                                         GROUP_STYLE_BOTTOM);
2139         pCheckButton->SetActionId(IDA_CHECK_BUTTON, IDA_UNCHECK_BUTTON, INIT_VALUE);
2140         pCheckButton->SetColor(CHECK_BUTTON_STATUS_NORMAL, COLOR_SELECT_ALL);
2141         AppLogDebug("EXIT");
2142         return pCheckButton;
2143 }
2144
2145 Tizen::Ui::Controls::Label*
2146 CommonUtil::CreateCheckedCountLabel(int width, int height)
2147 {
2148         AppLogDebug("ENTER");
2149         Label* pLabel = new (std::nothrow) Label();
2150         pLabel->Construct(Rectangle(INIT_VALUE, height - H_CHECKED_COUNT_LABEL, width, H_CHECKED_COUNT_LABEL), L"");
2151         pLabel->SetBackgroundColor(COLOR_SMALL_POPUP);
2152         pLabel->SetTextHorizontalAlignment(ALIGNMENT_CENTER);
2153         pLabel->SetText(FONT_SIZE);
2154         AppLogDebug("EXIT");
2155         return pLabel;
2156 }
2157
2158 void
2159 CommonUtil::SetAddtoPlaylistState(bool state)
2160 {
2161         AppLogDebug("ENTER");
2162         __addToPlaylistState = state;
2163         AppLogDebug("EXIT");
2164 }
2165
2166 bool
2167 CommonUtil::GetAddtoPlaylistState(void)
2168 {
2169         AppLogDebug("ENTER");
2170         AppLogDebug("EXIT");
2171         return __addToPlaylistState;
2172 }
2173
2174 void
2175 CommonUtil::SetAddtoPlaylistName(const Tizen::Base::String& addToPlayName)
2176 {
2177         AppLogDebug("ENTER");
2178         __AddToPlaylistName = addToPlayName;
2179         AppLogDebug("EXIT");
2180 }
2181
2182 Tizen::Base::String
2183 CommonUtil::GetAddtoPlaylistName(void)
2184 {
2185         AppLogDebug("ENTER");
2186         AppLogDebug("EXIT");
2187         return __AddToPlaylistName;
2188 }
2189
2190 void
2191 CommonUtil::SetButtonEnabled(const Tizen::Ui::Controls::Form& form, int checkedItemCount, int actionId)
2192 {
2193         AppLogDebug("ENTER");
2194         Footer* pFooter = form.GetFooter();
2195         if (pFooter == null)
2196         {
2197                 return;
2198         }
2199
2200         if (actionId == IDA_CHECK_BUTTON
2201                 || actionId == IDA_UNCHECK_BUTTON
2202                 || actionId == IDA_FOOTER_BUTTON_ADD_TO_PLAYLIST
2203                 || actionId == IDA_FOOTER_BUTTON_DELETE)
2204         {
2205                 bool buttonState = checkedItemCount == 0 ? false : true;
2206                 for (int iCount = 0; iCount < pFooter->GetItemCount() - 1; iCount++)
2207                 {
2208                         pFooter->SetItemEnabled(iCount, buttonState);
2209                         pFooter->Invalidate(true);
2210                 }
2211         }
2212         else if (actionId == IDA_FOOTER_BUTTON_CANCEL)
2213         {
2214                 for (int iCount = 0; iCount < pFooter->GetItemCount() - 1; iCount++)
2215                 {
2216                         pFooter->SetItemEnabled(iCount, true);
2217                         pFooter->Invalidate(true);
2218                 }
2219         }
2220         AppLogDebug("EXIT");
2221 }
2222
2223 void
2224 CommonUtil::SetButtonEnabled(const Tizen::Ui::Controls::Form& form, int checkedItemCount)
2225 {
2226         AppLogDebug("ENTER");
2227         Footer* pFooter = form.GetFooter();
2228         if (pFooter == null)
2229         {
2230                 return;
2231         }
2232
2233         bool buttonState = checkedItemCount == 0 ? false : true;
2234         for (int iCount = 0; iCount < pFooter->GetItemCount() - 1; iCount++)
2235         {
2236                 pFooter->SetItemEnabled(iCount, buttonState);
2237                 pFooter->Invalidate(true);
2238         }
2239         AppLogDebug("EXIT");
2240 }
2241
2242 Bitmap*
2243 CommonUtil::GetColorizedBitmapN(const Tizen::Graphics::Bitmap& bitmap, const Tizen::Graphics::Color& color)
2244 {
2245         AppLogDebug("ENTER");
2246         if (bitmap.GetPixelColorFormat() != BITMAP_PIXEL_FORMAT_ARGB8888)
2247         {
2248                 return null;
2249         }
2250         std::unique_ptr<Bitmap>pRet(new (std::nothrow) Bitmap());
2251         if (pRet == null)
2252         {
2253                 return null;
2254         }
2255         result r = pRet->Construct(bitmap, Rectangle(0, 0, bitmap.GetWidth(), bitmap.GetHeight()));
2256         if (r != E_SUCCESS)
2257         {
2258                 return null;
2259         }
2260         BufferInfo bi;
2261         pRet->Lock(bi);
2262         {
2263                 typedef unsigned long Pixel;
2264                 Pixel* pDst = static_cast<Pixel*>(bi.pPixels);
2265                 int dstPadding = bi.pitch / sizeof(Pixel) - bi.width;
2266                 Pixel replacing = color.GetRGB32() & 0x00FFFFFF;
2267                 for (int y = 0; y < bi.height; y++)
2268                 {
2269                         for (int x = 0; x < bi.width; x++)
2270                         {
2271                                 *pDst = (*pDst & 0xFF000000) | replacing;
2272                                 pDst++;
2273                         }
2274                         pDst += dstPadding;
2275                 }
2276         }
2277         pRet->Unlock();
2278         AppLogDebug("EXIT");
2279         return pRet.release();
2280 }
2281
2282 void
2283 CommonUtil::SetNoContentImage(Tizen::Ui::Controls::Label& source, Tizen::Base::String& resourceName, Tizen::Base::String& text)
2284 {
2285         AppLogDebug("ENTER");
2286         Bitmap* pNoContentImage = ResourceManager::GetBitmapN(resourceName);
2287         source.SetBackgroundBitmap(*pNoContentImage);
2288         delete pNoContentImage;
2289         source.SetText(text);
2290         source.Invalidate(false);
2291         AppLogDebug("EXIT");
2292 }
2293
2294 Tizen::Base::String
2295 CommonUtil::SetHighDepthToEllipsisPath(const Tizen::Base::String& fullFilePath)
2296 {
2297         AppLogDebug("ENTER");
2298         StringTokenizer stringTokenizer(fullFilePath, IDS_SEPARATOR_SLASH);
2299         int depthCount = stringTokenizer.GetTokenCount() - DEPTH;
2300         if (depthCount <= INIT_VALUE)
2301         {
2302                 AppLogDebug("EXIT");
2303                 return fullFilePath;
2304         }
2305
2306         String folderPath(L".");
2307         int iLoopCount = 0;
2308         while (stringTokenizer.HasMoreTokens())
2309         {
2310                 String token;
2311                 stringTokenizer.GetNextToken(token);
2312                 if (iLoopCount >= depthCount)
2313                 {
2314                         folderPath.Append(IDS_SEPARATOR_SLASH);
2315                         folderPath.Append(token);
2316                 }
2317                 iLoopCount++;
2318         }
2319
2320         AppLogDebug("EXIT");
2321         return folderPath;
2322 }
2323
2324 Tizen::Base::String
2325 CommonUtil::GetFontSizeValue(void)
2326 {
2327         AppLogDebug("ENTER");
2328         String fontSizeValue;
2329         SettingInfo::GetValue(PARAM_FONT_SIZE, fontSizeValue);
2330         AppLogDebug("EXIT");
2331         return fontSizeValue;
2332 }
2333
2334 int
2335 CommonUtil::GetItemHeight(const Tizen::Base::String& fontSizeValue)
2336 {
2337         int itemHeight;
2338
2339         if (fontSizeValue.Equals(STRING_FONT_SIZE_GIANT, false))
2340         {
2341                 itemHeight = ITEM_HEIGHT_MAIN_TEXT_GIANT;
2342         }
2343         else if (fontSizeValue.Equals(STRING_FONT_SIZE_HUGE, false))
2344         {
2345                 itemHeight = ITEM_HEIGHT_MAIN_TEXT_HUGE;
2346         }
2347         else if (fontSizeValue.Equals(STRING_FONT_SIZE_LARGE, false))
2348         {
2349                 itemHeight = ITEM_HEIGHT_MAIN_TEXT_LARGE;
2350         }
2351         else if (fontSizeValue.Equals(L"medium", false))
2352         {
2353                 itemHeight = ITEM_HEIGHT_MAIN_TEXT_NORMAL;
2354         }
2355         else
2356         {
2357                 itemHeight = ITEM_HEIGHT_MAIN_TEXT_SMALL;
2358         }
2359         return itemHeight;
2360 }
2361
2362 int
2363 CommonUtil::GetFontSize(const Tizen::Base::String& fontSizeValue)
2364 {
2365         int fontSize;
2366
2367         if (fontSizeValue.Equals(STRING_FONT_SIZE_GIANT, false))
2368         {
2369                 fontSize = FONT_MAIN_TEXT_SIZE_GIANT;
2370         }
2371         else if (fontSizeValue.Equals(STRING_FONT_SIZE_HUGE, false))
2372         {
2373                 fontSize = FONT_MAIN_TEXT_SIZE_HUGE;
2374         }
2375         else if (fontSizeValue.Equals(STRING_FONT_SIZE_LARGE, false))
2376         {
2377                 fontSize = FONT_MAIN_TEXT_SIZE_LARGE;
2378         }
2379         else if (fontSizeValue.Equals(L"medium", false))
2380         {
2381                 fontSize = FONT_MAIN_TEXT_SIZE_NORMAL;
2382         }
2383         else
2384         {
2385                 fontSize = FONT_MAIN_TEXT_SIZE_SMALL;
2386         }
2387
2388         return fontSize;
2389 }