Basic video preview in a separate actitivy
[pub/Android/ownCloud.git] / src / com / owncloud / android / ui / fragment / FileDetailFragment.java
index 0d07c44..5c8604c 100644 (file)
@@ -71,6 +71,7 @@ import android.widget.ImageView;
 import android.widget.MediaController;\r
 import android.widget.TextView;\r
 import android.widget.Toast;\r
+import android.widget.VideoView;\r
 \r
 import com.actionbarsherlock.app.SherlockFragment;\r
 import com.owncloud.android.AccountUtils;\r
@@ -97,6 +98,7 @@ import com.owncloud.android.ui.activity.ConflictsResolveActivity;
 import com.owncloud.android.ui.activity.FileDetailActivity;\r
 import com.owncloud.android.ui.activity.FileDisplayActivity;\r
 import com.owncloud.android.ui.activity.TransferServiceGetter;\r
+import com.owncloud.android.ui.activity.VideoActivity;\r
 import com.owncloud.android.ui.dialog.EditNameDialog;\r
 import com.owncloud.android.ui.dialog.EditNameDialog.EditNameDialogListener;\r
 import com.owncloud.android.utils.OwnCloudVersion;\r
@@ -133,6 +135,7 @@ public class FileDetailFragment extends SherlockFragment implements
     private Handler mHandler;\r
     private RemoteOperation mLastRemoteOperation;\r
     private DialogFragment mCurrentDialog;\r
+    \r
     private MediaServiceBinder mMediaServiceBinder = null;\r
     private MediaController mMediaController = null;\r
     private MediaServiceConnection mMediaServiceConnection = null;\r
@@ -418,25 +421,56 @@ public class FileDetailFragment extends SherlockFragment implements
     \r
     @Override\r
     public boolean onTouch(View v, MotionEvent event) {\r
-        if (v == mPreview && event.getAction() == MotionEvent.ACTION_DOWN && mFile != null && mFile.isDown() && mFile.isAudio()) {\r
-            if (!mMediaServiceBinder.isPlaying(mFile)) {\r
-                Log.d(TAG, "starting playback of " + mFile.getStoragePath());\r
-                mMediaServiceBinder.start(mAccount, mFile);\r
-                // this is a patch; need to synchronize this with the onPrepared() coming from MediaPlayer in the MediaService\r
-                mMediaController.postDelayed(new Runnable() {\r
-                    @Override\r
-                    public void run() {\r
-                        mMediaController.show(0);\r
-                    }\r
-                } , 300);\r
-            } else {\r
-                mMediaController.show(0);\r
+        if (v == mPreview && event.getAction() == MotionEvent.ACTION_DOWN && mFile != null && mFile.isDown()) {\r
+            if (mFile.isAudio()) {\r
+                if (!mMediaServiceBinder.isPlaying(mFile)) {\r
+                    Log.d(TAG, "starting playback of " + mFile.getStoragePath());\r
+                    mMediaServiceBinder.start(mAccount, mFile);\r
+                    // this is a patch; need to synchronize this with the onPrepared() coming from MediaPlayer in the MediaService\r
+                    mMediaController.postDelayed(new Runnable() {\r
+                        @Override\r
+                        public void run() {\r
+                            mMediaController.show(0);\r
+                        }\r
+                    } , 300);\r
+                } else {\r
+                    mMediaController.show(0);\r
+                }\r
+                \r
+            } else if (mFile.isVideo()) {\r
+                startVideoActivity();\r
             }\r
         }\r
         return false;\r
     }\r
 \r
     \r
+    private void startVideoActivity() {\r
+        Intent i = new Intent(getActivity(), VideoActivity.class);\r
+        i.putExtra(VideoActivity.EXTRA_PATH, mFile.getStoragePath());\r
+        startActivity(i);\r
+        \r
+        // TODO THROW AN ACTIVTIY JUST FOR PREVIEW VIDEO\r
+        /*\r
+        if (mMediaController == null) {\r
+            mMediaController = new MediaController(getActivity());\r
+            mMediaController.setAnchorView(mVideoPreview);\r
+            //mMediaController.setEnabled(true);\r
+        }\r
+        //mMediaController.setMediaPlayer(mMediaServiceBinder);\r
+        if (!mVideoPreviewIsLoaded) {\r
+            mVideoPreviewIsLoaded = true;\r
+            mMediaController.setMediaPlayer(mVideoPreview);\r
+            mVideoPreview.setMediaController(mMediaController);\r
+            mVideoPreview.setVideoPath(mFile.getStoragePath());\r
+            mVideoPreview.start();\r
+            //mMediaController.show(0);\r
+        } else {\r
+            mMediaController.show(0);\r
+        }*/\r
+    }\r
+\r
+\r
     private void bindMediaService() {\r
         Log.d(TAG, "Binding to MediaService...");\r
         if (mMediaServiceConnection == null) {\r