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
* 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
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
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
\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
mPreview = null;\r
}\r
\r
- if (mMediaController != null) {\r
- mMediaController.hide();\r
- }\r
}\r
\r
\r
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
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
\r
private void startVideoActivity() {\r
Intent i = new Intent(getActivity(), VideoActivity.class);\r
- i.putExtra(VideoActivity.EXTRA_PATH, mFile.getStoragePath());\r
+ 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
MediaService.class),\r
mMediaServiceConnection, \r
Context.BIND_AUTO_CREATE);\r
+ // follow the flow in MediaServiceConnection#onServiceConnected(...)\r
}\r
\r
/** Defines callbacks for service binding, passed to bindService() */\r
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
}\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