mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgimp.cpp
branchRCL_3
changeset 28 56b11cf8addb
parent 21 a1247965635c
child 31 a12246c97fcc
--- a/mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgimp.cpp	Tue May 11 16:10:56 2010 +0300
+++ b/mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgimp.cpp	Tue May 25 12:39:12 2010 +0300
@@ -91,9 +91,10 @@
 #include <mpxfindinmusicshop.h>
 #include <mpxfindinmusicshopcommon.h>  // KFindInMShopKeyInValid
 
-// cenrep key need to be checked whether USB cable is connected in MTP/Combined Mode
+// cenrep key need to be checked whether Mass Storage or MTP is connected
 #include <UsbWatcherInternalPSKeys.h>
 #include <usbpersonalityids.h>
+#include <mtpprivatepskeys.h>
 #include <mpxappui.hrh>
 #include <mpxinternalcrkeys.h>
 #include <mpxtlshelper.h>
@@ -616,13 +617,16 @@
     TInt usbStatus;
     RProperty::Get(KPSUidUsbWatcher, KUsbWatcherSelectedPersonality, usbStatus);
 
-
-    // Whenever usb  is connected
-    if ( usbStatus == KUsbPersonalityIdMTP 
-            || usbStatus == KUsbPersonalityIdMS
-            || usbStatus == KUsbPersonalityIdPTP
-            || usbStatus == KUsbPersonalityIdPCSuiteMTP 
-            || usbStatus == KUsbPersonalityIdPCSuite )
+    TInt mtpStatus = EMtpPSStatusUninitialized;
+    RProperty::Get( KMtpPSUid, KMtpPSStatus, mtpStatus);
+    
+    MPX_DEBUG2("CMPXCollectionViewHgImp::ConstructL, mtpstatus = %d", mtpStatus);
+
+    // Whenever usb/mtp is connected
+    if ( usbStatus == KUsbPersonalityIdMS
+                || usbStatus == KUsbPersonalityIdPTP
+                || usbStatus == KUsbPersonalityIdPCSuite 
+                || mtpStatus != EMtpPSStatusUninitialized )
         {
         RProperty::Set( KMPXViewPSUid,
         		        KMPXUSBUnblockingPSStatus,
@@ -754,12 +758,12 @@
                         {
                         iContainer->EnableFindBox(EFalse);
                         }
+
+                    // delete songs list to update T-bone view after deleting a song
+                    album->Delete( KMPXMediaArrayContents );
                     }
                 iConfirmationDlg = NULL;
-                CleanupStack::PopAndDestroy( waitNoteText );
-                
-                // delete songs list to update T-bone view after deleting a song
-                album->Delete( KMPXMediaArrayContents );
+                CleanupStack::PopAndDestroy( waitNoteText );                
                 }
             }
         CleanupStack::PopAndDestroy( path );
@@ -1269,7 +1273,7 @@
             else if ( ( aIndex > 0 )
                 && ( aIndex < iContainer->CurrentListItemCount() ) )
                 {
-                iContainer->SetLbxCurrentItemIndexAndDraw( aIndex );
+                // No need to do anything here
                 }
             else
                 {
@@ -3670,7 +3674,8 @@
     {
     MPX_FUNC( "CMPXCollectionViewHgImp::UpdateMiddleSoftKeyDisplayL" );
     CEikButtonGroupContainer* cba = Cba();
-    if ( cba )
+	// We only update middle softkey for non-touch UI
+    if ( cba && !AknLayoutUtils::PenEnabled() )
         {
         if ( !iContainer->CurrentListItemCount() ) // list is empty
             {
@@ -4073,15 +4078,7 @@
                 } 
             // USB flags
             //
-	       CEikMenuBar* menuBar( MenuBar() );
-            if(iContainer)
-                {
-                iContainer->EnableMarking( EFalse );
-                }
-            if(menuBar)
-                {
-                menuBar->SetMenuTitleResourceId( R_MPX_COLLECTION_VIEW_MENUBAR_NO_MARKING );
-                }
+	        CEikMenuBar* menuBar( MenuBar() );
 	        TBool IsUSBEvent( EFalse );
             if( type == EMcMsgUSBMassStorageStart || type == EMcMsgUSBMTPStart )
                 {
@@ -5951,25 +5948,16 @@
     // Add view deactivation observer
     AppUi()->AddViewDeactivationObserverL( this );
 
-#ifdef __ENABLE_PODCAST_IN_MUSIC_MENU
+    CMPXCollectionPath* cpath( iCollectionUtility->Collection().PathL() );
+    CleanupStack::PushL( cpath );
     // media is not valid until the first HandleOpenL call
     CEikButtonGroupContainer* cba = Cba();
     if ( cba )
         {
-        cba->SetCommandSetL(R_MPX_OPTIONS_BACK_CBA_NO_ACTION); 
-        cba->DrawNow(); 
-        }
-#else
-    // media is not valid until the first HandleOpenL call
-    CEikButtonGroupContainer* cba = Cba();
-    if ( cba )
-        {
-        cba->SetCommandSetL(
-            ( iViewUtility->ViewHistoryDepth() == 1 && !iIsEmbedded ) ?
-            R_MPX_OPTIONS_EXIT_CBA_NO_ACTION : R_MPX_OPTIONS_BACK_CBA_NO_ACTION );
-        cba->DrawDeferred();
-        }
-#endif
+        cba->SetCommandSetL(( cpath->Levels() == 3 && !iIsEmbedded ) ?
+            R_MPX_OPTIONS_HIDE_CBA: R_MPX_OPTIONS_BACK_CBA_NO_ACTION );
+        cba->DrawDeferred(); 
+        }
 
     // Set status pane layout if switched here directly from another view,
     // such as when using the AnyKey
@@ -5985,10 +5973,6 @@
     AppUi()->AddToStackL( *this, iContainer );
     iContainer->SetRect( ClientRect() );
 
-    CMPXCollectionPath* cpath( iCollectionUtility->Collection().PathL() );
-    CleanupStack::PushL( cpath );
-
-
 
 	UpdateTitlePaneL();
 
@@ -6022,7 +6006,6 @@
         if ( cpath->Levels() > 1 )
             {
             // valid path in collection
-            GetDurationL();
             MPX_DEBUG_PATH(*cpath);
 
             DoIncrementalOpenL();
@@ -6042,12 +6025,8 @@
             {
             iPodcast = ETrue;
             }
-        // don't bother getting duration if at plugin list
-        if ( cpath->Levels() > 1 )
 #endif
-            {
-            GetDurationL();
-            }
+
         MPX_DEBUG_PATH(*cpath);
 
         DoIncrementalOpenL( cpath->Levels()>KMusicCollectionMenuLevel ? ETrue:EFalse );
@@ -6210,7 +6189,14 @@
 			{
 			// playlist view
 			aMenuPane->SetItemDimmed( EMPXCmdGoToPlaylists, ETrue );
-            aMenuPane->SetItemDimmed(EMPXCmdGoToMusicShop, iGoToMusicShopOptionHidden );
+			if(usbUnblockingStatus)
+			 {
+			 aMenuPane->SetItemDimmed( EMPXCmdGoToMusicShop, ETrue );
+			 }
+			else          
+			 {
+             aMenuPane->SetItemDimmed(EMPXCmdGoToMusicShop, iGoToMusicShopOptionHidden );
+             }
 	        if (containerType != EMPXGroup ) // EMPXItem -> playlist tracks level
 			 {
 			  aMenuPane->SetItemDimmed( EMPXCmdGoToArtistAlbums, ETrue );
@@ -6230,7 +6216,14 @@
 			{
 			// Artists & Albums view
 			aMenuPane->SetItemDimmed( EMPXCmdGoToArtistAlbums, ETrue );
-            aMenuPane->SetItemDimmed(EMPXCmdGoToMusicShop, iGoToMusicShopOptionHidden ); 
+			if(usbUnblockingStatus)
+			 {
+             aMenuPane->SetItemDimmed( EMPXCmdGoToMusicShop, ETrue );
+			 }
+			else          
+			 {
+             aMenuPane->SetItemDimmed(EMPXCmdGoToMusicShop, iGoToMusicShopOptionHidden );
+             }
 			if ( iContainer->IsTBoneView() ) //TBone View
 			    {
 			    aMenuPane->SetItemDimmed( EMPXCmdGoToAllSongs, ETrue );
@@ -6247,7 +6240,14 @@
 			{
 			// Genre view
         	aMenuPane->SetItemDimmed( EMPXCmdGoToGenre, ETrue );
-            aMenuPane->SetItemDimmed(EMPXCmdGoToMusicShop, iGoToMusicShopOptionHidden );    
+			if(usbUnblockingStatus)
+			 {
+			 aMenuPane->SetItemDimmed( EMPXCmdGoToMusicShop, ETrue );
+			 }
+			else          
+			 {
+			 aMenuPane->SetItemDimmed(EMPXCmdGoToMusicShop, iGoToMusicShopOptionHidden );
+             }
 			if ( containerType != EMPXGroup ) // EMPXItem -> tracks level
 				{
                 aMenuPane->SetItemDimmed( EMPXCmdGoToAllSongs, ETrue );
@@ -6267,7 +6267,14 @@
 			{
 			// Song view and Genre Track view
 			aMenuPane->SetItemDimmed( EMPXCmdGoToAllSongs, ETrue );
-            aMenuPane->SetItemDimmed(EMPXCmdGoToMusicShop, iGoToMusicShopOptionHidden );
+			if(usbUnblockingStatus)
+			 {
+			 aMenuPane->SetItemDimmed( EMPXCmdGoToMusicShop, ETrue );
+			 }
+			else          
+			 {
+             aMenuPane->SetItemDimmed(EMPXCmdGoToMusicShop, iGoToMusicShopOptionHidden );
+			 }
 			break;
 			}
 		default:
@@ -6313,6 +6320,7 @@
 
 				if ( iContainer->CurrentLbxItemIndex() > KErrNotFound && !iContainer->IsTBoneView())
 				    {
+				    aMenuPane->SetItemDimmed( EMPXCmdPlayItem, EFalse );			    	       
                     if ( usbUnblockingStatus == EMPXUSBUnblockingPSStatusActive )
                         {
                         aMenuPane->SetItemDimmed( EMPXCmdAddToPlaylist, ETrue );
@@ -6322,7 +6330,6 @@
                         {
                          aMenuPane->SetItemDimmed( EMPXCmdAddToPlaylist, EFalse );
                          aMenuPane->SetItemDimmed( EMPXCmdDelete, EFalse );
-                         aMenuPane->SetItemDimmed( EMPXCmdPlayItem, EFalse );
                         }
 					}
 				if ( iContainer->IsSelectedItemASong() && iContainer->IsTBoneView() )
@@ -6364,7 +6371,16 @@
 			aMenuPane->SetItemDimmed( EMPXCmdPlaylistDetails, ETrue );
 			if ( !Layout_Meta_Data::IsLandscapeOrientation() )
  				{
-			    if( !iContainer->IsTBoneView()&& (iContainer->CurrentLbxItemIndex() > KErrNotFound))
+ 				TInt usbUnblockingStatus;
+				RProperty::Get( KMPXViewPSUid,
+							KMPXUSBUnblockingPSStatus,
+							usbUnblockingStatus);
+
+				if (usbUnblockingStatus == EMPXUSBUnblockingPSStatusActive)
+					{
+					aMenuPane->SetItemDimmed( EMPXCmdFindInMusicShop, ETrue); 
+					}
+				else if( !iContainer->IsTBoneView()&& (iContainer->CurrentLbxItemIndex() > KErrNotFound))								
 			        {  
                     CMPXCollectionViewListBoxArray* array =
                     static_cast<CMPXCollectionViewListBoxArray*>(
@@ -6571,6 +6587,7 @@
 
             if ( iContainer->CurrentLbxItemIndex() > KErrNotFound )
                 {
+                aMenuPane->SetItemDimmed( EMPXCmdPlayItem, EFalse ); 
                 TInt usbUnblockingStatus;
                 RProperty::Get( KMPXViewPSUid,
                                 KMPXUSBUnblockingPSStatus,
@@ -6582,7 +6599,6 @@
                 else
                     {
                     aMenuPane->SetItemDimmed( EMPXCmdAddToPlaylist, EFalse );
-                    aMenuPane->SetItemDimmed( EMPXCmdPlayItem, EFalse );
                     }
                 }
             
@@ -6720,7 +6736,20 @@
 						aMenuPane->SetItemDimmed( EMPXCmdAlbumArt, ETrue );
 						aMenuPane->SetItemDimmed( EMPXCmdFindInMusicShop, ETrue );
 						}
-					aMenuPane->SetItemDimmed( EMPXCmdFindInMusicShop, !iUsingNokiaService );
+
+					TInt usbUnblockingStatus;
+					RProperty::Get( KMPXViewPSUid,
+						KMPXUSBUnblockingPSStatus,
+						usbUnblockingStatus);
+
+					if (usbUnblockingStatus == EMPXUSBUnblockingPSStatusActive)
+						{
+						aMenuPane->SetItemDimmed( EMPXCmdFindInMusicShop, ETrue); 
+						}
+					else
+						{	
+					    aMenuPane->SetItemDimmed( EMPXCmdFindInMusicShop, !iUsingNokiaService );
+						}
 					}
 				}
 			aMenuPane->SetItemDimmed( EMPXCmdRename, ETrue );
@@ -6763,6 +6792,11 @@
         {
         case R_MPX_COLLECTION_VIEW_MENU_1:
             {
+            TInt usbUnblockingStatus;
+            RProperty::Get( KMPXViewPSUid,
+                    KMPXUSBUnblockingPSStatus,
+                    usbUnblockingStatus);
+								
             HandleInitMusicMenuPaneL(aMenuPane);
             aMenuPane->SetItemDimmed( EMPXCmdGoToNowPlaying, NowPlayingOptionVisibilityL() );
 			if ( isListEmpty )
@@ -6777,7 +6811,14 @@
 				aMenuPane->SetItemDimmed( EMPXCmdDelete, ETrue );
 				aMenuPane->SetItemDimmed( EMPXCmdRemove, ETrue );
 				aMenuPane->SetItemDimmed( EMPXCmdPlayItem, ETrue );
-				aMenuPane->SetItemDimmed( EMPXCmdAddSongs, EFalse );
+				if ( usbUnblockingStatus == EMPXUSBUnblockingPSStatusActive )
+					{
+					aMenuPane->SetItemDimmed( EMPXCmdAddSongs, ETrue );
+					}
+                else
+					{
+					aMenuPane->SetItemDimmed( EMPXCmdAddSongs, EFalse );
+					}
 				}
 			else
 				{
@@ -6792,10 +6833,7 @@
                 aMenuPane->SetItemDimmed( EMPXCmdRemove, ETrue );
 				aMenuPane->SetItemDimmed( EMPXCmdPlayItem, ETrue );
 				
-				TInt usbUnblockingStatus;
-				RProperty::Get( KMPXViewPSUid,
-								KMPXUSBUnblockingPSStatus,
-								usbUnblockingStatus);
+
 
 				if ( usbUnblockingStatus == EMPXUSBUnblockingPSStatusActive )
 					{
@@ -6811,8 +6849,15 @@
 						{
 						selectionCount = iSelectionIndexCache->Count();
 						}
-					// do not display add songs option when marking is on
-					aMenuPane->SetItemDimmed( EMPXCmdAddSongs, selectionCount > 0 );
+					// do not display add songs option when marking is on or USB is connected
+					if ( usbUnblockingStatus == EMPXUSBUnblockingPSStatusActive )
+						{
+						aMenuPane->SetItemDimmed( EMPXCmdAddSongs, ETrue );
+						}
+					else
+						{
+						aMenuPane->SetItemDimmed( EMPXCmdAddSongs, selectionCount > 0 );
+						}
 
 					if ( iContainer->CurrentLbxItemIndex() > KErrNotFound )
 						{
@@ -6880,7 +6925,20 @@
 						{
 						aMenuPane->SetItemDimmed( EMPXCmdSongDetails, ETrue );
 						}
-					aMenuPane->SetItemDimmed( EMPXCmdFindInMusicShop, !iUsingNokiaService );
+						
+					TInt usbUnblockingStatus;
+					RProperty::Get( KMPXViewPSUid,
+							KMPXUSBUnblockingPSStatus,
+							usbUnblockingStatus);
+
+					if (usbUnblockingStatus == EMPXUSBUnblockingPSStatusActive)
+						{
+						aMenuPane->SetItemDimmed( EMPXCmdFindInMusicShop, ETrue);
+						}
+					else
+						{		
+					    aMenuPane->SetItemDimmed( EMPXCmdFindInMusicShop, !iUsingNokiaService );
+						}
 					}
 				}
 			if (iServiceHandler->HandleSubmenuL(*aMenuPane))