Do not try to play files in streaming by now
[pub/Android/ownCloud.git] / src / com / owncloud / android / ui / fragment / FileDetailFragment.java
index a823595..f37c609 100644 (file)
@@ -97,6 +97,7 @@ import com.owncloud.android.operations.SynchronizeFileOperation;
 import com.owncloud.android.ui.activity.ConflictsResolveActivity;\r
 import com.owncloud.android.ui.activity.FileDetailActivity;\r
 import com.owncloud.android.ui.activity.FileDisplayActivity;\r
+import com.owncloud.android.ui.OnSwipeTouchListener;\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
@@ -111,7 +112,7 @@ import eu.alefzero.webdav.WebdavUtils;
  * This Fragment is used to display the details about a file.\r
  * \r
  * @author Bartek Przybylski\r
- * \r
+ * @author David A. Velasco\r
  */\r
 public class FileDetailFragment extends SherlockFragment implements\r
         OnClickListener, OnTouchListener, \r
@@ -223,6 +224,7 @@ public class FileDetailFragment extends SherlockFragment implements
         super.onAttach(activity);\r
         try {\r
             mContainerActivity = (ContainerActivity) activity;\r
+            \r
         } catch (ClassCastException e) {\r
             throw new ClassCastException(activity.toString() + " must implement " + FileDetailFragment.ContainerActivity.class.getSimpleName());\r
         }\r
@@ -237,6 +239,7 @@ public class FileDetailFragment extends SherlockFragment implements
         super.onActivityCreated(savedInstanceState);\r
         if (mAccount != null) {\r
             mStorageManager = new FileDataStorageManager(mAccount, getActivity().getApplicationContext().getContentResolver());;\r
+            mView.setOnTouchListener(new OnSwipeTouchListener(getActivity()));            \r
         }\r
     }\r
         \r
@@ -273,9 +276,6 @@ public class FileDetailFragment extends SherlockFragment implements
 \r
         mPreview = (ImageView)mView.findViewById(R.id.fdPreview);   // this is here just because it is nullified in onPause()\r
         \r
-        if (mMediaController != null) {\r
-            mMediaController.show();\r
-        }\r
     }\r
 \r
 \r
@@ -293,9 +293,6 @@ public class FileDetailFragment extends SherlockFragment implements
             mPreview = null;\r
         }\r
         \r
-        if (mMediaController != null) {\r
-            mMediaController.hide();\r
-        }\r
     }\r
 \r
 \r
@@ -304,9 +301,15 @@ public class FileDetailFragment extends SherlockFragment implements
         super.onStop();\r
         if (mMediaServiceConnection != null) {\r
             Log.d(TAG, "Unbinding from MediaService ...");\r
+            if (mMediaServiceBinder != null && mMediaController != null) {\r
+                mMediaServiceBinder.unregisterMediaController(mMediaController);\r
+            }\r
             getActivity().unbindService(mMediaServiceConnection);\r
             mMediaServiceBinder = null;\r
-            mMediaController = null;\r
+            if (mMediaController != null) {\r
+                mMediaController.hide();\r
+                mMediaController = null;\r
+            }\r
         }\r
     }\r
     \r
@@ -421,20 +424,26 @@ 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) {\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
+                    /*\r
                     mMediaController.postDelayed(new Runnable() {\r
                         @Override\r
                         public void run() {\r
                             mMediaController.show(0);\r
                         }\r
                     } , 300);\r
+                    */\r
                 } else {\r
-                    mMediaController.show(0);\r
+                    if (mMediaController.isShowing()) {\r
+                        mMediaController.hide();\r
+                    } else {\r
+                        mMediaController.show(MediaService.MEDIA_CONTROL_LIFE);\r
+                    }\r
                 }\r
                 \r
             } else if (mFile.isVideo()) {\r
@@ -450,25 +459,6 @@ public class FileDetailFragment extends SherlockFragment implements
         i.putExtra(VideoActivity.EXTRA_FILE, mFile);\r
         i.putExtra(VideoActivity.EXTRA_ACCOUNT, mAccount);\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
@@ -496,9 +486,7 @@ public class FileDetailFragment extends SherlockFragment implements
                     if (mMediaController == null) {\r
                         mMediaController = new MediaController(getSherlockActivity());\r
                     }\r
-                    mMediaController.setMediaPlayer(mMediaServiceBinder);\r
-                    mMediaController.setAnchorView(mPreview);\r
-                    mMediaController.setEnabled(true);\r
+                    prepareMediaController();\r
                     \r
                     Log.d(TAG, "Successfully bound to MediaService, MediaController ready");\r
                     \r
@@ -508,13 +496,20 @@ public class FileDetailFragment extends SherlockFragment implements
             }\r
         }\r
         \r
+        private void prepareMediaController() {\r
+            mMediaServiceBinder.registerMediaController(mMediaController);\r
+            mMediaController.setMediaPlayer(mMediaServiceBinder);\r
+            mMediaController.setAnchorView(getView());\r
+            mMediaController.setEnabled(mMediaServiceBinder.isInPlaybackState());\r
+        }\r
+\r
         @Override\r
         public void onServiceDisconnected(ComponentName component) {\r
             if (component.equals(new ComponentName(getActivity(), MediaService.class))) {\r
-                Log.d(TAG, "Media service suddenly disconnected");\r
+                Log.e(TAG, "Media service suddenly disconnected");\r
                 if (mMediaController != null) {\r
                     mMediaController.hide();\r
-                    mMediaController.setMediaPlayer(null);  // TODO check this is not an error\r
+                    mMediaController.setMediaPlayer(null);\r
                     mMediaController = null;\r
                 }\r
                 mMediaServiceBinder = null;\r