Fixed ClassCastingException
[pub/Android/ownCloud.git] / src / com / owncloud / android / ui / activity / VideoActivity.java
index fbd0ce2..be0f862 100644 (file)
@@ -37,6 +37,7 @@ import android.widget.VideoView;
 import com.owncloud.android.AccountUtils;
 import com.owncloud.android.R;
 import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.media.MediaService;
 
 /**
  *  Activity implementing a basic video player.
@@ -55,10 +56,6 @@ public class VideoActivity extends Activity implements OnCompletionListener, OnP
     /** Key to receive the ownCloud {@link Account} where the file to play is saved as an extra value in an {@link Intent} */
     public static final String EXTRA_ACCOUNT = "ACCOUNT";
     
-    // Time To keep the control panel visible when the user does not use it
-    private static final int MEDIA_CONTOL_LIFE = 5000;
-    
-    private static final int OC_MEDIA_ERROR = 0;
     private static final String TAG = null;
 
     private OCFile mFile;                       // video file to play
@@ -104,7 +101,7 @@ public class VideoActivity extends Activity implements OnCompletionListener, OnP
                 mVideoPlayer.setVideoURI(Uri.parse(url));
                 
             } else {
-                onError(null, OC_MEDIA_ERROR, R.string.media_err_no_account);
+                onError(null, MediaService.OC_MEDIA_ERROR, R.string.media_err_no_account);
             }
             
             // create and prepare control panel for the user
@@ -114,7 +111,7 @@ public class VideoActivity extends Activity implements OnCompletionListener, OnP
             mVideoPlayer.setMediaController(mMediaController);
             
         } else {
-            onError(null, OC_MEDIA_ERROR, R.string.media_err_nothing_to_play);
+            onError(null, MediaService.OC_MEDIA_ERROR, R.string.media_err_nothing_to_play);
         }
     }    
     
@@ -128,8 +125,8 @@ public class VideoActivity extends Activity implements OnCompletionListener, OnP
      */
     @Override
     public void onPrepared(MediaPlayer vp) {
-        mVideoPlayer.start();   // TODO maybe unnecessary
-        //mMediaController.show(5000);  // TODO maybe unnecessary; maybe not, it's up when the Surface notifies the VideoView about creation
+        mVideoPlayer.start();
+        mMediaController.show(5000);  
     }
     
     
@@ -162,20 +159,9 @@ public class VideoActivity extends Activity implements OnCompletionListener, OnP
         }
         
         if (mVideoPlayer.getWindowToken() != null) {
-            int messageId;
-            if (what == OC_MEDIA_ERROR) {
-                messageId = extra;
-                
-            } else if (what == MediaPlayer.MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK) {
-                messageId = android.R.string.VideoView_error_text_invalid_progressive_playback;
-                
-            } else {
-                // what == MediaPlayer.MEDIA_ERROR_UNKNOWN or MEDIA_ERROR_SERVER_DIED
-                messageId = android.R.string.VideoView_error_text_unknown;
-                
-            }
+            String message = MediaService.getMessageForMediaError(this, what, extra);
             new AlertDialog.Builder(this)
-                    .setMessage(messageId)
+                    .setMessage(message)
                     .setPositiveButton(android.R.string.VideoView_error_button,
                             new DialogInterface.OnClickListener() {
                                 public void onClick(DialogInterface dialog, int whichButton) {
@@ -185,61 +171,6 @@ public class VideoActivity extends Activity implements OnCompletionListener, OnP
                     .setCancelable(false)
                     .show();
         }
-        
-
-        /*
-        switch (what) {
-            case MediaPlayer.MEDIA_ERROR_UNKNOWN:
-                /*Added in API level 1
-                Unspecified media player error.
-                Constant Value: 1 (0x00000001)
-                *-/
-                break;
-                
-            case MediaPlayer.MEDIA_ERROR_SERVER_DIED:
-                /* Added in API level 1
-                Media server died. In this case, the application must release the MediaPlayer object and instantiate a new one.
-                Constant Value: 100 (0x00000064) *-/
-                break;
-            
-            case MediaPlayer.MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK:
-                /* Added in API level 3
-                The video is streamed and its container is not valid for progressive playback i.e the video's index (e.g moov atom) is not at the start of the file.
-                See Also
-                MediaPlayer.OnErrorListener
-                Constant Value: 200 (0x000000c8)
-                *-/
-                break;
-
-            /// under this, seems they are values for  extra
-            case MediaPlayer.MEDIA_ERROR_UNSUPPORTED:
-                /* Added in API level 17
-                    Bitstream is conforming to the related coding standard or file spec, but the media framework does not support the feature.
-                    Constant Value: -1010 (0xfffffc0e)
-                 *-/
-                break;
-        
-            case MediaPlayer.MEDIA_ERROR_IO:
-                /* Added in API level 17
-                File or network related operation errors.
-                Constant Value: -1004 (0xfffffc14) *-/
-                break;
-
-            case MediaPlayer.MEDIA_ERROR_MALFORMED:
-                /* Added in API level 17
-                Bitstream is not conforming to the related coding standard or file spec.
-                Constant Value: -1007 (0xfffffc11) *-/
-                break;
-                
-            case MediaPlayer.MEDIA_ERROR_TIMED_OUT:
-                /*Added in API level 17
-                Some operation takes too long to complete, usually more than 3-5 seconds.
-                Constant Value: -110 (0xffffff92)
-                *-/
-                break;
-        }
-                */
-        
         return true;
     }
     
@@ -252,7 +183,7 @@ public class VideoActivity extends Activity implements OnCompletionListener, OnP
     @Override
     public boolean onTouchEvent (MotionEvent ev){ 
         if (ev.getAction() == MotionEvent.ACTION_DOWN) {
-            mMediaController.show(MEDIA_CONTOL_LIFE);
+            mMediaController.show(MediaService.MEDIA_CONTROL_SHORT_LIFE);
             return true;        
         } else {
             return false;