Implementaion the feature of Prev/Next button in MiniPlayer
authorJongTaeOh <jongtae.oh@samsung.com>
Tue, 26 Mar 2013 09:07:34 +0000 (18:07 +0900)
committerJongTaeOh <jongtae.oh@samsung.com>
Tue, 26 Mar 2013 09:07:34 +0000 (18:07 +0900)
Change-Id: I482576e167f61da292be08a0eeefe699848cd213

inc/MpMiniPlayer.h
inc/MpTypes.h
src/MpMiniPlayer.cpp
src/MpMusicPlayerForm.cpp
src/MpTypes.cpp

index 76a18d3..2e51497 100644 (file)
@@ -86,9 +86,10 @@ private:
        Tizen::Ui::Controls::Label* __pArtistLabel;\r
        Tizen::Ui::Controls::Progress* __pProgressBar;\r
        PlayerPresentationModel* __pPresentationModel;\r
+       bool __isLongPressed;\r
 \r
 //     Tizen::Base::String __titleName;\r
 //     Tizen::Base::String __artistName;\r
 };\r
 \r
-#endif // _MP_MINI_PLAYER_H_
\ No newline at end of file
+#endif // _MP_MINI_PLAYER_H_\r
index 1688bea..4aaf09b 100644 (file)
@@ -496,6 +496,9 @@ extern const unsigned int COLOR_HEADER_TITLE_TEXT;
 extern const unsigned int COLOR_HEADER_DESCRIPTION_TEXT;
 extern const unsigned int COLOR_ITEM_SUB_TEXT;
 
+extern const int MAX_PLAY_STATE_SLIDER_COUNT;
+extern const int MIN_PLAY_STATE_SLIDER_COUNT;
+
 extern const Tizen::Base::String IDS_SEPARATOR_SLASH;
 extern const Tizen::Base::String IDS_STORAGE_PHONE_PATH;
 extern const Tizen::Base::String IDS_STORAGE_SDCARD_PATH;
index 54d0750..fe2a1eb 100644 (file)
@@ -48,6 +48,7 @@ MiniPlayer::MiniPlayer(void)
        , __pArtistLabel(null)\r
        , __pProgressBar(null)\r
        , __pPresentationModel(null)\r
+       , __isLongPressed(false)\r
 {\r
        AppLogDebug("ENTER");\r
        AppLogDebug("EXIT");\r
@@ -79,11 +80,13 @@ MiniPlayer::Construct(void)
                AppLogDebug("PlayerPresentationModel::GetInstance() failed");\r
                return E_FAILURE;\r
        }\r
+       __pPresentationModel->AddMusicPlayerEventListener(*this);\r
 \r
        __pThumbnailLabel = static_cast<Label*>(GetControl(IDC_CONTENTS_THUMBNAIL));\r
        __pThumbnailLabel->SetBackgroundBitmap(*__pPresentationModel->GetPlayContentThumbnail());\r
        __pThumbnailLabel->AddTouchEventListener(*this);\r
 \r
+\r
 //     String miniPlayerTitleText;\r
 //     miniPlayerTitleText.Format(STRING_LENGTH, L"%ls - %ls", __pPresentationModel->GetPlayContentTitle()->GetPointer(), __pPresentationModel->GetPlayContentArtist()->GetPointer());\r
 //\r
@@ -408,6 +411,8 @@ MiniPlayer::OnPlayContentChanged(int currentContentIndex)
        __pProgressBar->SetRange(INIT_VALUE, PROGRESS_MAX_VALUE);\r
 \r
        delete pContentInfo;\r
+\r
+       Invalidate(true);\r
        AppLogDebug("EXIT");\r
 }\r
 \r
@@ -476,6 +481,11 @@ MiniPlayer::OnTouchPressed(const Tizen::Ui::Control& source, const Tizen::Graphi
                        pSceneManager->GoForward(ForwardSceneTransition(IDSCN_PLAYER));\r
                }\r
        }\r
+       else if(__pMinPlayerPrevButton->GetHashCode() == source.GetHashCode() ||\r
+                       __pMinPlayerNextButton->GetHashCode() == source.GetHashCode())\r
+       {\r
+               __isLongPressed = false;\r
+       }\r
        AppLogDebug("EXIT");\r
 }\r
 \r
@@ -485,12 +495,14 @@ MiniPlayer::OnTouchLongPressed(const Tizen::Ui::Control& source, const Tizen::Gr
        AppLogDebug("ENTER");\r
        if (__pMinPlayerPrevButton->GetHashCode() == source.GetHashCode() )\r
        {\r
-               // Empty statement\r
+               __isLongPressed = true;\r
+               __pPresentationModel->Rewind();\r
                AppLogDebug("__pMinPlayerPrevButton");\r
        }\r
        else if (__pMinPlayerNextButton->GetHashCode() == source.GetHashCode() )\r
        {\r
-               // Empty statement\r
+               __isLongPressed = true;\r
+               __pPresentationModel->Forward();\r
                AppLogDebug("__pMinPlayerNextButton");\r
        }\r
        else\r
@@ -504,19 +516,72 @@ void
 MiniPlayer::OnTouchReleased(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo)\r
 {\r
        AppLogDebug("ENTER");\r
-       if (__pMinPlayerPrevButton->GetHashCode() == source.GetHashCode() )\r
+       if (__isLongPressed == true)\r
        {\r
-               // Empty statement\r
-               AppLogDebug("__pMinPlayerPrevButton");\r
-       }\r
-       else if (__pMinPlayerNextButton->GetHashCode() == source.GetHashCode() )\r
-       {\r
-               // Empty statement\r
-               AppLogDebug("__pMinPlayerNextButton");\r
+               __pPresentationModel->StopForwardRewind();\r
        }\r
        else\r
        {\r
-               // Empty statement\r
+               if (__pMinPlayerPrevButton->GetHashCode() == source.GetHashCode() )\r
+               {\r
+                       if (__pPresentationModel->GetContentListCount() > 1)\r
+                       {\r
+                               while (__pPresentationModel->IsFileExist(__pPresentationModel->GetPreviousContentIndex()) == false\r
+                                       && __pPresentationModel->GetContentListCount() > 0)\r
+                               {\r
+                                       __pPresentationModel->RemoveContent(*__pPresentationModel->GetContentPath(__pPresentationModel->GetPreviousContentIndex()));\r
+                               }\r
+                       }\r
+\r
+                       if (__pPresentationModel->GetContentListCount() <= 1)\r
+                       {\r
+                               MessageBox messageBox;\r
+                               messageBox.Construct(L"", ResourceManager::GetString(L"IDS_MUSIC_HEADER_NO_SONGS"), MSGBOX_STYLE_NONE, 1000);\r
+\r
+                               int modalResult = 0;\r
+                               messageBox.ShowAndWait(modalResult);\r
+                       }\r
+                       else\r
+                       {\r
+                               __pPresentationModel->MovePreviousContent(true);\r
+                               if (__pPresentationModel->GetPlayerState() != PLAYER_STATE_PAUSED)\r
+                               {\r
+                                       __pPresentationModel->Play(__pPresentationModel->GetCurrentContentIndex(), MIN_PLAY_STATE_SLIDER_COUNT);\r
+                               }\r
+                       }\r
+               }\r
+               else if (__pMinPlayerNextButton->GetHashCode() == source.GetHashCode() )\r
+               {\r
+                       if (__pPresentationModel->GetContentListCount() > 1)\r
+                       {\r
+                               while (__pPresentationModel->IsFileExist(__pPresentationModel->GetNextContentIndex()) == false\r
+                                       && __pPresentationModel->GetContentListCount() > 0)\r
+                               {\r
+                                       __pPresentationModel->RemoveContent(*__pPresentationModel->GetContentPath(__pPresentationModel->GetNextContentIndex()));\r
+                               }\r
+                       }\r
+\r
+                       if (__pPresentationModel->GetContentListCount() <= 1)\r
+                       {\r
+                               MessageBox messageBox;\r
+                               messageBox.Construct(L"", ResourceManager::GetString(L"IDS_MUSIC_HEADER_NO_SONGS"), MSGBOX_STYLE_NONE, 1000);\r
+\r
+                               int modalResult = 0;\r
+                               messageBox.ShowAndWait(modalResult);\r
+                       }\r
+                       else\r
+                       {\r
+                               __pPresentationModel->MoveNextContent();\r
+                               if (__pPresentationModel->GetPlayerState() != PLAYER_STATE_PAUSED)\r
+                               {\r
+                                       __pPresentationModel->Play(__pPresentationModel->GetCurrentContentIndex(), MIN_PLAY_STATE_SLIDER_COUNT);\r
+                               }\r
+                       }\r
+               }\r
+               else\r
+               {\r
+                       // Empty statement\r
+               }\r
        }\r
        AppLogDebug("EXIT");\r
 }\r
@@ -527,7 +592,6 @@ MiniPlayer::MiniPlayerActivate(void)
        AppLogDebug("ENTER");\r
        __pProgressBar->SetValue(__pPresentationModel->GetPlayPosition());\r
        __pProgressBar->Draw(true);\r
-       __pPresentationModel->AddMusicPlayerEventListener(*this);\r
        AppLogDebug("EXIT");\r
 }\r
 \r
@@ -535,6 +599,5 @@ void
 MiniPlayer::MiniPlayerDeactivate(void)\r
 {\r
        AppLogDebug("ENTER");\r
-       __pPresentationModel->RemoveMusicPlayerEventListener(*this);\r
        AppLogDebug("EXIT");\r
-}
\ No newline at end of file
+}\r
index 5ff6241..02b075d 100644 (file)
@@ -64,9 +64,6 @@ static const int H_VOLUME_PANEL = 112;
 
 static const int TRANSPARENT_COLOR = 0x00000000;
 
-static const int MAX_PLAY_STATE_SLIDER_COUNT = 100;
-static const int MIN_PLAY_STATE_SLIDER_COUNT = 0;
-
 static const int MIN_VOLUME_SLIDER_COUNT = 0;
 static const int MAX_VOLUME_SLIDER_COUNT = 15;
 
@@ -327,6 +324,8 @@ PlayerForm::OnInitializing(void)
        UpdateSplitBarState();
        TogglePlayPauseImage(PLAYER_STATE_CLOSED);
 
+       __pPlayerPresentationModel->AddMusicPlayerEventListener(*this);
+
        AppLogDebug("EXIT");
        return ThumbnailBase::Construct();
 }
@@ -1209,7 +1208,6 @@ PlayerForm::OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId,
        SetKeyCapture(KEY_SIDE_DOWN);
        */
 
-       __pPlayerPresentationModel->AddMusicPlayerEventListener(*this);
        if (previousSceneId != IDSCN_MUSIC_SETTING
                && previousSceneId != IDSCN_PLAYLIST_CREATOR
                && previousSceneId != IDSCN_CONTENT_DETAIL)
@@ -1250,7 +1248,6 @@ PlayerForm::OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId,
                                                                                        const Tizen::Ui::Scenes::SceneId& nextSceneId)
 {
        AppLogDebug("ENTER");
-       __pPlayerPresentationModel->RemoveMusicPlayerEventListener(*this);
        CancelAllThumbnailRequest();
        AppLogDebug("EXIT");
 }
@@ -1914,4 +1911,4 @@ PlayerForm::UpdateItem(int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem)
        __pThumbnail = null;
        pThumbnailLabel->Invalidate(true);
        AppLogDebug("EXIT");
-}
\ No newline at end of file
+}
index af4a2e2..563b4e2 100644 (file)
@@ -156,4 +156,8 @@ const wchar_t* IDB_MUSIC_LINE_CONTENT_FORM = L"T02_music_line.png";
 const Tizen::Base::String IDS_SEPARATOR_SLASH = L"/";
 const Tizen::Base::String IDS_STORAGE_PHONE_PATH = Environment::GetMediaPath() + L"Sounds/";
 const Tizen::Base::String IDS_STORAGE_SDCARD_PATH = Environment::GetExternalStoragePath();
-const Tizen::Base::String IDS_STORAGE_EXTERNAL_PATH = Environment::GetMediaPath();
\ No newline at end of file
+const Tizen::Base::String IDS_STORAGE_EXTERNAL_PATH = Environment::GetMediaPath();
+
+//VALUE
+const int MAX_PLAY_STATE_SLIDER_COUNT = 100;
+const int MIN_PLAY_STATE_SLIDER_COUNT = 0;