Browse Source

Saved isplaying state to avoid autoplay when a video is paused and the device orientation is changed

David A. Velasco 12 years ago
parent
commit
2c2efa286d
1 changed files with 10 additions and 2 deletions
  1. 10 2
      src/com/owncloud/android/ui/preview/PreviewMediaFragment.java

+ 10 - 2
src/com/owncloud/android/ui/preview/PreviewMediaFragment.java

@@ -90,6 +90,7 @@ public class PreviewMediaFragment extends SherlockFragment implements
     public static final String EXTRA_FILE = "FILE";
     public static final String EXTRA_ACCOUNT = "ACCOUNT";
     private static final String EXTRA_PLAY_POSITION = "PLAY_POSITION";
+    private static final String EXTRA_PLAYING = "PLAYING";
 
     private View mView;
     private OCFile mFile;
@@ -106,6 +107,7 @@ public class PreviewMediaFragment extends SherlockFragment implements
     private MediaControlView mMediaController = null;
     private MediaServiceConnection mMediaServiceConnection = null;
     private VideoHelper mVideoHelper;
+    private boolean mAutoplay;
     
     private static final String TAG = PreviewMediaFragment.class.getSimpleName();
 
@@ -123,6 +125,7 @@ public class PreviewMediaFragment extends SherlockFragment implements
         mAccount = ocAccount;
         mSavedPlaybackPosition = 0;
         mStorageManager = null; // we need a context to init this; the container activity is not available yet at this moment 
+        mAutoplay = true;
     }
     
     
@@ -138,6 +141,7 @@ public class PreviewMediaFragment extends SherlockFragment implements
         mAccount = null;
         mSavedPlaybackPosition = 0;
         mStorageManager = null;
+        mAutoplay = true;
     }
     
     
@@ -195,6 +199,7 @@ public class PreviewMediaFragment extends SherlockFragment implements
             mFile = savedInstanceState.getParcelable(PreviewMediaFragment.EXTRA_FILE);
             mAccount = savedInstanceState.getParcelable(PreviewMediaFragment.EXTRA_ACCOUNT);
             mSavedPlaybackPosition = savedInstanceState.getInt(PreviewMediaFragment.EXTRA_PLAY_POSITION);
+            mAutoplay = savedInstanceState.getBoolean(PreviewMediaFragment.EXTRA_PLAYING);
             
         }
         if (mFile == null) {
@@ -229,8 +234,9 @@ public class PreviewMediaFragment extends SherlockFragment implements
         outState.putParcelable(PreviewMediaFragment.EXTRA_FILE, mFile);
         outState.putParcelable(PreviewMediaFragment.EXTRA_ACCOUNT, mAccount);
         
-        if (mVideoPreview.isPlaying()) {
+        if (mFile.isVideo()) {
             outState.putInt(PreviewMediaFragment.EXTRA_PLAY_POSITION , mVideoPreview.getCurrentPosition());
+            outState.putBoolean(PreviewMediaFragment.EXTRA_PLAYING , mVideoPreview.isPlaying());
         }
     }
     
@@ -345,7 +351,9 @@ public class PreviewMediaFragment extends SherlockFragment implements
         @Override
         public void onPrepared(MediaPlayer vp) {
             mVideoPreview.seekTo(mSavedPlaybackPosition);
-            mVideoPreview.start();
+            if (mAutoplay) { 
+                mVideoPreview.start();
+            }
             mMediaController.setEnabled(true);
             mMediaController.updatePausePlay();
         }