Revision: 201003 PDK_3.0.g
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 02 Feb 2010 00:09:33 +0200
changeset 5 2a40e88564c8
parent 4 beaa16f65879
child 8 d415c79a9bd0
child 11 13afc0e517bd
child 19 4e84c994a771
Revision: 201003 Kit: 201005
mpxmusicplayer/app/src/mpxappui.cpp
mpxmusicplayer/app/src/mpxcontroller.cpp
mpxmusicplayer/metadatahandler/src/mpxmetadatahandlerimp.cpp
mpxplugins/viewplugins/views/addtracksdialog/src/mpxaddtracksdialog.cpp
mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgcontainer.cpp
mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgimp.cpp
mpxplugins/viewplugins/views/commonplaybackview/src/mpxcommonplaybackviewimp.cpp
mpxplugins/viewplugins/views/podcastplaybackview/src/mpxpodcastplaybackviewimp.cpp
mpxplugins/viewplugins/views/upnpplaybackdialog/src/mpxupnpplaybackdialog.cpp
--- a/mpxmusicplayer/app/src/mpxappui.cpp	Tue Jan 26 11:56:33 2010 +0200
+++ b/mpxmusicplayer/app/src/mpxappui.cpp	Tue Feb 02 00:09:33 2010 +0200
@@ -2640,20 +2640,22 @@
                             {
                             CMPXCollectionPlaylist* pl = s->PlaylistL();
                             TInt browsePathCount = cPath->Count();
-
-                            if (pl &&
-                                browsePathCount > 0) // don't set index since this playlist
-                                                     // no longer contains any items, this can
-                                                     // happen in the case of autoplaylists and cause
-                                                     // a hang
+                            													
+                            if( pl )
                                 {
                                 CleanupStack::PushL( pl );
-                                TInt playlistIndex = pl->Path().Index();
-                                if(playlistIndex < browsePathCount)
+                                if( browsePathCount > 0 ) // don't set index since this playlist
+                                                          // no longer contains any items, this can
+                                                          // happen in the case of autoplaylists and cause
+                                                          // a hang
                                     {
-                                    iCollectionUtility->Collection().CommandL(EMcCmdSelect,
-                                                                              playlistIndex);
-                                    }
+                                    TInt playlistIndex = pl->Path().Index();
+                                    if(playlistIndex < browsePathCount)
+                                        {
+                                        iCollectionUtility->Collection().CommandL(EMcCmdSelect,
+                                                                                  playlistIndex);
+                                        }
+                                    }                                
                                 CleanupStack::PopAndDestroy( pl );
                                 }
                             }
@@ -2760,18 +2762,20 @@
                     //
                     // Make sure we are the same level and the same container before making index call
                     //
-                    if (pl &&
-                        browsePathCount > 0 &&
-                        levels == pl->Path().Levels() &&
-                        cPath->Id(levels-2) == pl->Path().Id(levels-2) )
-                        {
+                    if( pl )
+                        {                    	
                         CleanupStack::PushL( pl );
-                        TInt playlistIndex = pl->Path().Index();
-
-                        if(playlistIndex < browsePathCount)
+                        if ( browsePathCount > 0 &&
+                            levels == pl->Path().Levels() &&
+                            cPath->Id(levels-2) == pl->Path().Id(levels-2) )
                             {
-                            iCollectionUtility->Collection().CommandL(EMcCmdSelect,
-                                                                     playlistIndex);
+                            TInt playlistIndex = pl->Path().Index();
+
+                            if(playlistIndex < browsePathCount)
+                                {
+                                iCollectionUtility->Collection().CommandL(EMcCmdSelect,
+                                                                         playlistIndex);
+                                }
                             }
                         CleanupStack::PopAndDestroy( pl );
                         }
@@ -3660,11 +3664,7 @@
                 needToExit = ETrue;
                 }
 
-            if( aCommand == EAknCmdExit )
-                {
-                // Options/Exit selected, close also the MM suite
-                LaunchMmViewL( KMmMessage );
-                }
+
             if( needToExit )
                 {
                 Exit();
--- a/mpxmusicplayer/app/src/mpxcontroller.cpp	Tue Jan 26 11:56:33 2010 +0200
+++ b/mpxmusicplayer/app/src/mpxcontroller.cpp	Tue Feb 02 00:09:33 2010 +0200
@@ -682,6 +682,12 @@
             }
         case EMcMsgUSBMassStorageStart:
             {
+            //Sometimes, this message will be received more than 1 time with usb plugin once.
+            //Just handle the first one. And only this message has such abnormal behaviour.
+            if ( iCurSystemEvent == EMcMsgUSBMassStorageStart )
+                {                
+                break;
+                }
             MPX_DEBUG1("CMPXController::DoHandleBroadcastMsg - EMcMsgUSBMassStorageStart");
             
             // Close playback framework and start wait note
--- a/mpxmusicplayer/metadatahandler/src/mpxmetadatahandlerimp.cpp	Tue Jan 26 11:56:33 2010 +0200
+++ b/mpxmusicplayer/metadatahandler/src/mpxmetadatahandlerimp.cpp	Tue Feb 02 00:09:33 2010 +0200
@@ -576,7 +576,7 @@
     TMediaAttributeIter& aAttributeIter )
     {
     MPX_FUNC( "CMPXMetaDataHandlerImp::MrcmitoGetCurrentlyPlayingMetadata" );
-    const TInt KMaxMediaAttrLen = 50;   // Replace with suitable value
+    const TInt KMaxMediaAttrLen = 300;  // >110 is required for AVRCP fragmentation
     TBuf8<KMaxMediaAttrLen> attrBuf;
     TMediaAttributeId attrId;
     aAttributeIter.Start();
@@ -650,9 +650,15 @@
             }
         if( detail )
             {
-            if( CnvUtfConverter::ConvertFromUnicodeToUtf8( attrBuf, *detail ) )
+            const TInt returnValue = CnvUtfConverter::ConvertFromUnicodeToUtf8( attrBuf, *detail );
+            if ( returnValue == CnvUtfConverter::EErrorIllFormedInput)
                 {
-                attrBuf.Zero();     // Check if this generates the right response
+                MPX_DEBUG1( "CMPXMetaDataHandlerImp::MrcmitoGetCurrentlyPlayingMetadata - Illformed string, sending zero length response" );
+                attrBuf.Zero();
+                }
+            else if ( returnValue > 0 )
+                {
+                MPX_DEBUG1( "CMPXMetaDataHandlerImp::MrcmitoGetCurrentlyPlayingMetadata - Could not convert whole string, sending converted fragment" );    
                 }
             }
         if( val )
--- a/mpxplugins/viewplugins/views/addtracksdialog/src/mpxaddtracksdialog.cpp	Tue Jan 26 11:56:33 2010 +0200
+++ b/mpxplugins/viewplugins/views/addtracksdialog/src/mpxaddtracksdialog.cpp	Tue Feb 02 00:09:33 2010 +0200
@@ -126,6 +126,7 @@
         }
     if ( iCollectionUiHelper )
         {
+        iCollectionUiHelper->Cancel();
         iCollectionUiHelper->Close();
         }
     if ( iOrigIcon )
@@ -1104,7 +1105,12 @@
         iAnimIconIndex = 0;
         iPeriodic->Cancel();
         iListModel->SetAnimationIconNum( iSelectIndex, 0 );
-        HighlightListItem( iSelectIndex );
+        TInt bottomIdx = iListBox->BottomItemIndex();
+        TInt topIdx = iListBox->TopItemIndex();
+        if ( topIdx <= iSelectIndex && iSelectIndex <= bottomIdx )
+            {
+            HighlightListItem( iSelectIndex );
+            }
         // restore origional navi pane text
         iNaviPane->Pop( iNaviLabelPane );
         iNaviPane->PushDefaultL();
--- a/mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgcontainer.cpp	Tue Jan 26 11:56:33 2010 +0200
+++ b/mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgcontainer.cpp	Tue Feb 02 00:09:33 2010 +0200
@@ -1415,7 +1415,7 @@
             {
             iListWidget->ResizeL( aCount );
             ProvideDataWithoutThumbnailsL(aMediaArray);
-            iListWidget->SetSelectedIndex( CurrentLbxItemIndex() );
+            iListWidget->SetSelectedIndex( index );
             }
         else
             {
@@ -1426,13 +1426,12 @@
         {
         // In case of mediawall components we switch to different view type if orientation changes
         // so there is no need to set new client rect for mediawall.
-
+        TInt index = iMediaWall->SelectedIndex();
         iMediaWall->Reset();
         if ( aCount )
             {
             iMediaWall->ResizeL( aCount );
             ProvideDataWithoutThumbnailsMwL(aMediaArray);
-            TInt index = CurrentLbxItemIndex();
             index = index >= 0 ? index : 0;
             iMediaWall->SetSelectedIndex( index );
             OpenAlbumL( index );
@@ -1470,6 +1469,7 @@
         iListWidget->ClearFlags( CHgScroller::EHgScrollerKeyMarkingDisabled );
         iListWidget->SetFocus(ETrue);
         iListWidget->SetScrollBarTypeL( CHgScroller::EHgScrollerLetterStripLite );
+        iListWidget->DrawableWindow()->SetOrdinalPosition( -1 );
         ProvideDataWithoutThumbnailsL(aMediaArray);
         }
     else
@@ -1987,6 +1987,7 @@
     if( iContext == EContextGroupAlbum )
         {
         iAlbumIndex = aIndex;
+        iSelectedAlbumIndex = aIndex;
         SaveSelectedAlbumItemL(aIndex);
         }
 
@@ -3598,7 +3599,7 @@
     else
         {
         //no albumart supported
-        SetDefaultIconL(aIndex);
+        iThumbnailReqMap[aIndex] = ETrue;
         RefreshL(aIndex);
         }
     }
--- a/mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgimp.cpp	Tue Jan 26 11:56:33 2010 +0200
+++ b/mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgimp.cpp	Tue Feb 02 00:09:33 2010 +0200
@@ -6515,6 +6515,7 @@
                 aMenuPane->SetItemDimmed( EMPXCmdSend, ETrue );
                 aMenuPane->SetItemDimmed( EMPXCmdDelete, ETrue );
                 aMenuPane->SetItemDimmed( EMPXCmdRemove, ETrue );
+                aMenuPane->SetItemDimmed( EMPXCmdPlayItem, ETrue );
                 }
             break;
             }
--- a/mpxplugins/viewplugins/views/commonplaybackview/src/mpxcommonplaybackviewimp.cpp	Tue Jan 26 11:56:33 2010 +0200
+++ b/mpxplugins/viewplugins/views/commonplaybackview/src/mpxcommonplaybackviewimp.cpp	Tue Feb 02 00:09:33 2010 +0200
@@ -3375,8 +3375,8 @@
             playlist = source->PlaylistL();
             if ( playlist )
                 {
-                iPlaybackUtility->CommandL(EPbCmdPreserveState);
                 CleanupStack::PushL( playlist );
+                iPlaybackUtility->CommandL(EPbCmdPreserveState);                
                 }
             }
 
@@ -3867,6 +3867,7 @@
                 CMPXCollectionPlaylist* playlist = s->PlaylistL();
                 if ( playlist )
                     {
+                    CleanupStack::PushL( playlist );
                     if ( playlist->Count() > 0 )
                         {
                         TMPXPlaybackState state = iPlaybackUtility->StateL();
@@ -3880,7 +3881,7 @@
                             iCommonUiHelper->SetMiddleSoftKeyLabelL( *cba, R_QTN_MSK_PLAY, EAknSoftkeyForwardKeyEvent);
                             }
                         }
-                    delete playlist;
+                    CleanupStack::PopAndDestroy( playlist );
                     }
                 }
             MPX_DEBUG1("CMPXCommonPlaybackViewImp::UpdateMiddleSoftKeyDisplayL - new label displayed");
@@ -3916,6 +3917,7 @@
                 CMPXCollectionPlaylist* playlist = s->PlaylistL();
                 if ( playlist )
                     {
+                    CleanupStack::PushL( playlist );
                     if ( playlist->Count() > 0 )
                         {
                         if( pausePlayControl )
@@ -3940,7 +3942,7 @@
                     		}
                         }
 
-                    delete playlist;
+                    CleanupStack::PopAndDestroy( playlist );
                     }
                 else
                     {
--- a/mpxplugins/viewplugins/views/podcastplaybackview/src/mpxpodcastplaybackviewimp.cpp	Tue Jan 26 11:56:33 2010 +0200
+++ b/mpxplugins/viewplugins/views/podcastplaybackview/src/mpxpodcastplaybackviewimp.cpp	Tue Feb 02 00:09:33 2010 +0200
@@ -523,6 +523,7 @@
                 CMPXCollectionPlaylist* playlist = s->PlaylistL();
                 if ( playlist )
                     {
+                    CleanupStack::PushL( playlist );
                     if ( playlist->Count() > 0 && pausePlayControl )
                         {
                         TMPXPlaybackState state = iPlaybackUtility->StateL();
@@ -535,8 +536,8 @@
                            pausePlayControl->SetCurrentState(1, ETrue);
                            }
                         }
+                    CleanupStack::PopAndDestroy( playlist );
                     }
-                delete playlist;
                 }
             }
         }
--- a/mpxplugins/viewplugins/views/upnpplaybackdialog/src/mpxupnpplaybackdialog.cpp	Tue Jan 26 11:56:33 2010 +0200
+++ b/mpxplugins/viewplugins/views/upnpplaybackdialog/src/mpxupnpplaybackdialog.cpp	Tue Feb 02 00:09:33 2010 +0200
@@ -2478,6 +2478,7 @@
                 CMPXCollectionPlaylist* playlist = s->PlaylistL();
                 if ( playlist )
                     {
+                    CleanupStack::PushL( playlist );
                     if ( playlist->Count() > 0 )
                         {
                         if( pausePlayControl )
@@ -2493,8 +2494,7 @@
                                }
                             }
                         }
-
-                    delete playlist;
+                    CleanupStack::PopAndDestroy( playlist );
                     }
                 else
                     {