diff -r f87e8c4ac026 -r 3eb824b18d67 videoplayback/videoplaybackviews/src/mpxvideobaseplaybackview.cpp --- a/videoplayback/videoplaybackviews/src/mpxvideobaseplaybackview.cpp Tue Sep 14 21:23:06 2010 +0300 +++ b/videoplayback/videoplaybackviews/src/mpxvideobaseplaybackview.cpp Wed Sep 15 12:15:24 2010 +0300 @@ -16,7 +16,7 @@ */ -// Version : %version: 86 % +// Version : %version: 88 % // Include Files @@ -966,7 +966,7 @@ } case KMPXVideoCallOngoingError: { - DisplayInfoMessageL( R_MPX_VIDEO_CALL_ONGOING ); + DisplayInfoMessageL( R_MPX_VIDEO_CALL_ONGOING, ETrue ); break; } default: @@ -1550,7 +1550,15 @@ void CMPXVideoBasePlaybackView::DoClosePlayerL() { MPX_ENTER_EXIT(_L("CMPXVideoBasePlaybackView::DoClosePlayerL()")); - AppUi()->HandleCommandL( EAknSoftkeyBack ); + + if ( iExitPlayer ) + { + AppUi()->HandleCommandL( EAknCmdExit ); + } + else + { + AppUi()->HandleCommandL( EAknSoftkeyBack ); + } } // ------------------------------------------------------------------------------------------------- @@ -1860,6 +1868,8 @@ { MPX_ENTER_EXIT(_L("CMPXVideoBasePlaybackView::HandleDrmErrorsL()")); + TInt drmUiError = KErrNone; + // // If we receive an error when we are initialized, let the DRM UI Handler // process the error. If we have been playing, display the error message @@ -1883,10 +1893,11 @@ DRM::CDrmUiHandling* drmUiHandling = DRM::CDrmUiHandling::NewL( iCoeEnv ); CleanupStack::PushL( drmUiHandling ); - drmUiHandling->GetErrorHandler().HandleErrorL( fileHandle, - ContentAccess::EPlay, - aError, - NULL ); + MPX_TRAP( drmUiError, + drmUiHandling->GetErrorHandler().HandleErrorL( fileHandle, + ContentAccess::EPlay, + aError, + NULL ) ); CleanupStack::PopAndDestroy( drmUiHandling ); } @@ -1903,10 +1914,12 @@ DRM::CDrmUiHandling* drmUiHandling = DRM::CDrmUiHandling::NewL( iCoeEnv ); CleanupStack::PushL( drmUiHandling ); - drmUiHandling->GetErrorHandler().HandleErrorL( fileHandle64, - ContentAccess::EPlay, - aError, - NULL ); + MPX_TRAP( drmUiError, + drmUiHandling->GetErrorHandler().HandleErrorL( fileHandle64, + ContentAccess::EPlay, + aError, + NULL ) ); + CleanupStack::PopAndDestroy( drmUiHandling ); } else @@ -1925,7 +1938,19 @@ CleanupStack::PopAndDestroy(); // fileHandle } - HandleClosePlaybackViewL(); + if ( KErrNone == drmUiError ) + { + HandleClosePlaybackViewL(); + } + else if ( KLeaveExit == drmUiError ) + { + iExitPlayer = ETrue; + ActivateClosePlayerActiveObject(); + } + else + { + User::Leave( drmUiError ); + } } // -------------------------------------------------------------------------------------------------