Skip to content

Commit f74f592

Browse files
authored
Merge pull request nextcloud#11089 from nextcloud/fix/video-fullscreen-buffer
Video preview: use fullscreen dialog for video instead of new activity
2 parents bbaf8d3 + 3f990c3 commit f74f592

10 files changed

Lines changed: 237 additions & 249 deletions

File tree

app/src/main/AndroidManifest.xml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -227,11 +227,6 @@
227227
android:name=".ui.preview.PreviewImageActivity"
228228
android:exported="false"
229229
android:theme="@style/Theme.ownCloud.Overlay" />
230-
<activity
231-
android:name=".ui.preview.PreviewVideoActivity"
232-
android:exported="false"
233-
android:theme="@style/Theme.ownCloud.Fullscreen" />
234-
235230
<service
236231
android:name=".authentication.AccountAuthenticatorService"
237232
android:exported="false">

app/src/main/java/com/nextcloud/client/di/ComponentsModule.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,6 @@
124124
import com.owncloud.android.ui.preview.PreviewTextFileFragment;
125125
import com.owncloud.android.ui.preview.PreviewTextFragment;
126126
import com.owncloud.android.ui.preview.PreviewTextStringFragment;
127-
import com.owncloud.android.ui.preview.PreviewVideoActivity;
128127
import com.owncloud.android.ui.preview.pdf.PreviewPdfFragment;
129128
import com.owncloud.android.ui.trashbin.TrashbinActivity;
130129
import com.owncloud.android.utils.FilesUploadHelper;
@@ -200,9 +199,6 @@ abstract class ComponentsModule {
200199
@ContributesAndroidInjector
201200
abstract PreviewImageActivity previewImageActivity();
202201

203-
@ContributesAndroidInjector
204-
abstract PreviewVideoActivity previewVideoActivity();
205-
206202
@ContributesAndroidInjector
207203
abstract ReceiveExternalFilesActivity receiveExternalFilesActivity();
208204

app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,6 @@
118118
import com.owncloud.android.ui.preview.PreviewTextFileFragment;
119119
import com.owncloud.android.ui.preview.PreviewTextFragment;
120120
import com.owncloud.android.ui.preview.PreviewTextStringFragment;
121-
import com.owncloud.android.ui.preview.PreviewVideoActivity;
122121
import com.owncloud.android.ui.preview.pdf.PreviewPdfFragment;
123122
import com.owncloud.android.utils.DataHolderUtil;
124123
import com.owncloud.android.utils.DisplayUtils;
@@ -2191,8 +2190,8 @@ public void startMediaPreview(OCFile file,
21912190
} else {
21922191
Intent previewIntent = new Intent();
21932192
previewIntent.putExtra(EXTRA_FILE, file);
2194-
previewIntent.putExtra(PreviewVideoActivity.EXTRA_START_POSITION, startPlaybackPosition);
2195-
previewIntent.putExtra(PreviewVideoActivity.EXTRA_AUTOPLAY, autoplay);
2193+
previewIntent.putExtra(PreviewMediaFragment.EXTRA_START_POSITION, startPlaybackPosition);
2194+
previewIntent.putExtra(PreviewMediaFragment.EXTRA_AUTOPLAY, autoplay);
21962195
FileOperationsHelper fileOperationsHelper = new FileOperationsHelper(this,
21972196
getUserAccountManager(),
21982197
connectivityService, editorUtils);
@@ -2373,10 +2372,10 @@ public void onMessageEvent(SyncEventFinished event) {
23732372
Bundle bundle = event.getIntent().getExtras();
23742373
if (event.getIntent().getBooleanExtra(TEXT_PREVIEW, false)) {
23752374
startTextPreview((OCFile) bundle.get(EXTRA_FILE), true);
2376-
} else if (bundle.containsKey(PreviewVideoActivity.EXTRA_START_POSITION)) {
2375+
} else if (bundle.containsKey(PreviewMediaFragment.EXTRA_START_POSITION)) {
23772376
startMediaPreview((OCFile) bundle.get(EXTRA_FILE),
2378-
(long) bundle.get(PreviewVideoActivity.EXTRA_START_POSITION),
2379-
(boolean) bundle.get(PreviewVideoActivity.EXTRA_AUTOPLAY), true, true);
2377+
(long) bundle.get(PreviewMediaFragment.EXTRA_START_POSITION),
2378+
(boolean) bundle.get(PreviewMediaFragment.EXTRA_AUTOPLAY), true, true);
23802379
} else if (bundle.containsKey(PreviewImageActivity.EXTRA_VIRTUAL_TYPE)) {
23812380
startImagePreview((OCFile) bundle.get(EXTRA_FILE),
23822381
(VirtualFolderType) bundle.get(PreviewImageActivity.EXTRA_VIRTUAL_TYPE),

app/src/main/java/com/owncloud/android/ui/preview/PreviewMediaFragment.java

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,6 @@
6868
import com.owncloud.android.lib.common.operations.RemoteOperationResult;
6969
import com.owncloud.android.lib.common.utils.Log_OC;
7070
import com.owncloud.android.ui.activity.DrawerActivity;
71-
import com.owncloud.android.ui.activity.FileActivity;
7271
import com.owncloud.android.ui.activity.FileDisplayActivity;
7372
import com.owncloud.android.ui.dialog.ConfirmationDialogFragment;
7473
import com.owncloud.android.ui.dialog.RemoveFilesDialogFragment;
@@ -87,6 +86,7 @@
8786
import androidx.annotation.StringRes;
8887
import androidx.appcompat.widget.AppCompatImageButton;
8988
import androidx.drawerlayout.widget.DrawerLayout;
89+
import androidx.fragment.app.FragmentActivity;
9090
import androidx.fragment.app.FragmentManager;
9191

9292
/**
@@ -105,10 +105,14 @@ public class PreviewMediaFragment extends FileFragment implements OnTouchListene
105105

106106
public static final String EXTRA_FILE = "FILE";
107107
public static final String EXTRA_USER = "USER";
108+
public static final String EXTRA_AUTOPLAY = "AUTOPLAY";
109+
public static final String EXTRA_START_POSITION = "START_POSITION";
110+
108111
private static final String EXTRA_PLAY_POSITION = "PLAY_POSITION";
109112
private static final String EXTRA_PLAYING = "PLAYING";
110113
private static final double MIN_DENSITY_RATIO = 24.0;
111114

115+
112116
private static final String FILE = "FILE";
113117
private static final String USER = "USER";
114118
private static final String PLAYBACK_POSITION = "PLAYBACK_POSITION";
@@ -128,6 +132,7 @@ public class PreviewMediaFragment extends FileFragment implements OnTouchListene
128132
FragmentPreviewMediaBinding binding;
129133
private ViewGroup emptyListView;
130134
private ExoPlayer exoPlayer;
135+
private NextcloudClient nextcloudClient;
131136

132137
/**
133138
* Creates a fragment to preview a file.
@@ -328,9 +333,9 @@ public void onStart() {
328333
final Handler handler = new Handler();
329334
Executors.newSingleThreadExecutor().execute(() -> {
330335
try {
331-
final NextcloudClient client = clientFactory.createNextcloudClient(accountManager.getUser());
336+
nextcloudClient = clientFactory.createNextcloudClient(accountManager.getUser());
332337
handler.post(() ->{
333-
exoPlayer = NextcloudExoPlayer.createNextcloudExoplayer(requireContext(), client);
338+
exoPlayer = NextcloudExoPlayer.createNextcloudExoplayer(requireContext(), nextcloudClient);
334339
exoPlayer.addListener(new ExoplayerListener(requireContext(), binding.exoplayerView, exoPlayer));
335340
playVideo();
336341
});
@@ -602,14 +607,10 @@ public boolean onTouch(View v, MotionEvent event) {
602607
}
603608

604609
private void startFullScreenVideo() {
605-
Intent intent = new Intent(getActivity(), PreviewVideoActivity.class);
606-
intent.putExtra(FileActivity.EXTRA_USER, user);
607-
intent.putExtra(FileActivity.EXTRA_FILE, getFile());
608-
intent.putExtra(PreviewVideoActivity.EXTRA_AUTOPLAY, exoPlayer.isPlaying());
609-
intent.putExtra(PreviewVideoActivity.EXTRA_STREAM_URL, videoUri);
610-
exoPlayer.pause();
611-
intent.putExtra(PreviewVideoActivity.EXTRA_START_POSITION, exoPlayer.getCurrentPosition());
612-
startActivityForResult(intent, FileActivity.REQUEST_CODE__LAST_SHARED + 1);
610+
final FragmentActivity activity = getActivity();
611+
if (activity != null) {
612+
new PreviewVideoFullscreenDialog(activity, nextcloudClient, exoPlayer, binding.exoplayerView).show();
613+
}
613614
}
614615

615616
@Override
@@ -623,8 +624,8 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) {
623624
Log_OC.v(TAG, "onActivityResult " + this);
624625
super.onActivityResult(requestCode, resultCode, data);
625626
if (resultCode == Activity.RESULT_OK) {
626-
savedPlaybackPosition = data.getLongExtra(PreviewVideoActivity.EXTRA_START_POSITION, 0);
627-
autoplay = data.getBooleanExtra(PreviewVideoActivity.EXTRA_AUTOPLAY, false);
627+
savedPlaybackPosition = data.getLongExtra(PreviewMediaFragment.EXTRA_START_POSITION, 0);
628+
autoplay = data.getBooleanExtra(PreviewMediaFragment.EXTRA_AUTOPLAY, false);
628629
}
629630
}
630631

app/src/main/java/com/owncloud/android/ui/preview/PreviewVideoActivity.kt

Lines changed: 0 additions & 211 deletions
This file was deleted.

0 commit comments

Comments
 (0)