浏览代码

PreviewMediaFragment java 124 Avoid non default constructors in fragments use a default

tobiaskaminsky 7 年之前
父节点
当前提交
887c1c4263

+ 2 - 3
src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java

@@ -486,7 +486,7 @@ public class FileDisplayActivity extends HookActivity
             if (file.isDown() && PreviewMediaFragment.canBePreviewed(file)) {
                 int startPlaybackPosition = getIntent().getIntExtra(PreviewVideoActivity.EXTRA_START_POSITION, 0);
                 boolean autoplay = getIntent().getBooleanExtra(PreviewVideoActivity.EXTRA_AUTOPLAY, true);
-                secondFragment = new PreviewMediaFragment(file, getAccount(), startPlaybackPosition, autoplay);
+                secondFragment = PreviewMediaFragment.newInstance(file, getAccount(), startPlaybackPosition, autoplay);
             } else if (file.isDown() && PreviewTextFragment.canBePreviewed(file)) {
                 secondFragment = null;
             } else {
@@ -1996,8 +1996,7 @@ public class FileDisplayActivity extends HookActivity
      *                              interactions.
      */
     public void startMediaPreview(OCFile file, int startPlaybackPosition, boolean autoplay) {
-        Fragment mediaFragment = new PreviewMediaFragment(file, getAccount(), startPlaybackPosition,
-                autoplay);
+        Fragment mediaFragment = PreviewMediaFragment.newInstance(file, getAccount(), startPlaybackPosition, autoplay);
         setSecondFragment(mediaFragment);
         updateFragmentsVisibility(true);
         updateActionBarTitleAndHomeButton(file);

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

@@ -1,4 +1,4 @@
-/**
+/*
  *   ownCloud Android client application
  *
  *   @author David A. Velasco
@@ -113,6 +113,11 @@ public class PreviewMediaFragment extends FileFragment implements
 
     private static final String SCREEN_NAME = "Audio/Video Preview";
 
+    private static final String FILE = "file";
+    private static final String ACCOUNT = "account";
+    private static final String PLAYBACK_POSITION = "playbackposition";
+    private static final String AUTOPLAY = "autoplay";
+
     /**
      * Creates a fragment to preview a file.
      * <p/>
@@ -121,16 +126,19 @@ public class PreviewMediaFragment extends FileFragment implements
      * @param fileToDetail An {@link OCFile} to preview in the fragment
      * @param ocAccount    An ownCloud account; needed to start downloads
      */
-    public PreviewMediaFragment(
-            OCFile fileToDetail,
-            Account ocAccount,
-            int startPlaybackPosition,
-            boolean autoplay) {
+    public static PreviewMediaFragment newInstance(OCFile fileToDetail, Account ocAccount, int startPlaybackPosition,
+                                                   boolean autoplay) {
+        PreviewMediaFragment previewMediaFragment = new PreviewMediaFragment();
+
+        Bundle bundle = new Bundle();
+        bundle.putParcelable(FILE, fileToDetail);
+        bundle.putParcelable(ACCOUNT, ocAccount);
+        bundle.putInt(PLAYBACK_POSITION, startPlaybackPosition);
+        bundle.putBoolean(AUTOPLAY, autoplay);
 
-        super(fileToDetail);
-        mAccount = ocAccount;
-        mSavedPlaybackPosition = startPlaybackPosition;
-        mAutoplay = autoplay;
+        previewMediaFragment.setArguments(bundle);
+
+        return previewMediaFragment;
     }
 
     /**
@@ -157,6 +165,13 @@ public class PreviewMediaFragment extends FileFragment implements
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setHasOptionsMenu(true);
+
+        Bundle bundle = getArguments();
+
+        setFile(bundle.getParcelable(FILE));
+        mAccount = bundle.getParcelable(ACCOUNT);
+        mSavedPlaybackPosition = bundle.getInt(PLAYBACK_POSITION);
+        mAutoplay = bundle.getBoolean(AUTOPLAY);
     }