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