videoplayback/videoplaybackviews/src/mpxvideobaseplaybackview.cpp
branchRCL_3
changeset 64 3eb824b18d67
parent 57 befca0ec475f
child 70 375929f879c2
--- 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 );
+    }
 }
 
 // -------------------------------------------------------------------------------------------------