Skip to content

Commit 8269c90

Browse files
committed
wip
Signed-off-by: alperozturk96 <alper_ozturk@proton.me>
1 parent 165912d commit 8269c90

12 files changed

Lines changed: 95 additions & 989 deletions

File tree

app/src/main/java/com/nextcloud/client/player/model/file/PlaybackFilesComparator.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
package com.nextcloud.client.player.model.file
99

1010
import com.owncloud.android.utils.FileSortOrder
11-
import third_parties.daveKoeller.AlphanumComparator
11+
import com.owncloud.android.utils.sort.AlphanumericComparator
1212

1313
sealed interface PlaybackFilesComparator : Comparator<PlaybackFile> {
1414

@@ -17,7 +17,7 @@ sealed interface PlaybackFilesComparator : Comparator<PlaybackFile> {
1717
}
1818

1919
object FAVORITE : PlaybackFilesComparator {
20-
override fun compare(a: PlaybackFile, b: PlaybackFile): Int = AlphanumComparator.compare(a.name, b.name)
20+
override fun compare(a: PlaybackFile, b: PlaybackFile): Int = AlphanumericComparator.compare(a.name, b.name)
2121
}
2222

2323
object GALLERY : PlaybackFilesComparator {
@@ -35,7 +35,7 @@ sealed interface PlaybackFilesComparator : Comparator<PlaybackFile> {
3535

3636
private fun createDelegate(): Comparator<PlaybackFile> {
3737
val sortTypeComparator: Comparator<PlaybackFile> = when (sortType) {
38-
FileSortOrder.SortType.ALPHABET -> Comparator { a, b -> AlphanumComparator.compare(a.name, b.name) }
38+
FileSortOrder.SortType.ALPHABET -> Comparator { a, b -> AlphanumericComparator.compare(a.name, b.name) }
3939
FileSortOrder.SortType.SIZE -> compareBy { it.contentLength }
4040
FileSortOrder.SortType.DATE -> compareBy { it.lastModified }
4141
}

app/src/main/java/com/nextcloud/client/player/ui/PlayerView.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,11 +112,10 @@ abstract class PlayerView @JvmOverloads constructor(
112112
}
113113
}
114114

115-
// TODO: HANDLE OR NEEDED AT ALL?
116115
private fun downloadFile() {
117116
val currentFile = playbackModel.state.getOrNull()?.currentItemState?.file
118117
val storageManager = FileDataStorageManager(userAccountManager.user, context.contentResolver)
119-
val file = currentFile?.id?.toLong()?.let { storageManager.getFileByLocalId(it) }
118+
val file = currentFile?.id?.toLong()?.let { storageManager.getFileByLocalId(it) } ?: return
120119

121120
activity.lifecycleScope.launch(Dispatchers.IO) {
122121
val operation = DownloadFileOperation(userAccountManager.user, file, context)
@@ -126,7 +125,7 @@ abstract class PlayerView @JvmOverloads constructor(
126125
if (result.isSuccess) {
127126
Log_OC.d(TAG, "file is successfully downloaded")
128127
val helper = FileDownloadHelper()
129-
file?.let { helper.saveFile(it, operation, storageManager) }
128+
helper.saveFile(file, operation, storageManager)
130129
} else {
131130
Log_OC.e(TAG, "cannot download file")
132131
withContext(Dispatchers.Main) {

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import com.nextcloud.client.jobs.upload.FileUploadHelper;
3838
import com.nextcloud.client.network.ConnectivityService;
3939
import com.nextcloud.client.network.NetworkChangeListener;
40+
import com.nextcloud.client.player.ui.PlayerActivity;
4041
import com.nextcloud.utils.EditorUtils;
4142
import com.nextcloud.utils.extensions.ActivityExtensionsKt;
4243
import com.nextcloud.utils.extensions.BundleExtensionsKt;
@@ -92,7 +93,6 @@
9293
import com.owncloud.android.ui.fragment.filesRepository.RemoteFilesRepository;
9394
import com.owncloud.android.ui.helpers.FileOperationsHelper;
9495
import com.owncloud.android.ui.preview.PreviewImageActivity;
95-
import com.owncloud.android.ui.preview.PreviewMediaActivity;
9696
import com.owncloud.android.utils.ClipboardUtil;
9797
import com.owncloud.android.utils.DisplayUtils;
9898
import com.owncloud.android.utils.ErrorMessageAdapter;
@@ -252,7 +252,7 @@ public void networkAndServerConnectionListener(boolean isNetworkAndServerAvailab
252252
refreshList();
253253
}
254254
} else {
255-
if (this instanceof PreviewMediaActivity) {
255+
if (this instanceof PlayerActivity) {
256256
hideInfoBox();
257257
} else {
258258
showInfoBox(R.string.offline_mode);

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

Lines changed: 14 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ import com.nextcloud.client.jobs.folderDownload.FolderDownloadEventBroadcaster
7171
import com.nextcloud.client.jobs.upload.FileUploadEventBroadcaster
7272
import com.nextcloud.client.jobs.upload.FileUploadHelper
7373
import com.nextcloud.client.jobs.upload.FileUploadWorker
74-
import com.nextcloud.client.media.PlayerServiceConnection
7574
import com.nextcloud.client.network.ClientFactory.CreationException
75+
import com.nextcloud.client.player.ui.PlayerLauncher
7676
import com.nextcloud.client.preferences.AppPreferences
7777
import com.nextcloud.client.utils.IntentUtil
7878
import com.nextcloud.model.WorkerState.OfflineOperationsCompleted
@@ -144,7 +144,6 @@ import com.owncloud.android.ui.interfaces.TransactionInterface
144144
import com.owncloud.android.ui.navigation.NavigatorScreen
145145
import com.owncloud.android.ui.preview.PreviewImageActivity
146146
import com.owncloud.android.ui.preview.PreviewImageFragment
147-
import com.owncloud.android.ui.preview.PreviewMediaActivity
148147
import com.owncloud.android.ui.preview.PreviewMediaFragment
149148
import com.owncloud.android.ui.preview.PreviewMediaFragment.Companion.newInstance
150149
import com.owncloud.android.ui.preview.PreviewTextFileFragment
@@ -226,9 +225,11 @@ class FileDisplayActivity :
226225
private var searchOpen = false
227226

228227
private var searchView: SearchView? = null
229-
private var mPlayerConnection: PlayerServiceConnection? = null
230228
private var lastDisplayedAccountName: String? = null
231229

230+
@Inject
231+
lateinit var playerLauncher: PlayerLauncher
232+
232233
@Inject
233234
lateinit var localBroadcastManager: LocalBroadcastManager
234235

@@ -298,10 +299,7 @@ class FileDisplayActivity :
298299
showSortListGroup(savedInstanceState.getBoolean(KEY_IS_SORT_GROUP_VISIBLE))
299300
}
300301

301-
mPlayerConnection = PlayerServiceConnection(this)
302-
303302
checkStoragePath()
304-
305303
observeWorkerState()
306304
startMetadataSyncForRoot()
307305
handleBackPress()
@@ -853,6 +851,9 @@ class FileDisplayActivity :
853851
}
854852
}
855853

854+
fun canMediaPreviewed(file: OCFile?): Boolean =
855+
file != null && (MimeTypeUtil.isAudio(file) || MimeTypeUtil.isVideo(file))
856+
856857
private fun tryStartWaitingPreview(success: Boolean): Boolean {
857858
if (!success) return false
858859

@@ -865,7 +866,7 @@ class FileDisplayActivity :
865866
true
866867
}
867868

868-
PreviewMediaActivity.canBePreviewed(file) -> {
869+
canMediaPreviewed(file) -> {
869870
startMediaPreview(file, 0, true, true, true, true)
870871
true
871872
}
@@ -2039,7 +2040,7 @@ class FileDisplayActivity :
20392040
} else if (MimeTypeUtil.isVideo(file)) {
20402041
setFabVisible?.onComplete(false)
20412042
startImagePreview(file, true)
2042-
} else if (PreviewMediaActivity.Companion.canBePreviewed(file)) {
2043+
} else if (canMediaPreviewed(file)) {
20432044
setFabVisible?.onComplete(false)
20442045
startMediaPreview(file, 0, true, true, false, true)
20452046
} else {
@@ -2190,7 +2191,7 @@ class FileDisplayActivity :
21902191
}
21912192

21922193
val removedFile = operation.file
2193-
tryStopPlaying(removedFile)
2194+
file?.let { playbackModel.stopPlaying(it) }
21942195
val leftFragment = this.leftFragment
21952196

21962197
// check if file is still available, if so do nothing
@@ -2295,13 +2296,6 @@ class FileDisplayActivity :
22952296
}
22962297
}
22972298

2298-
private fun tryStopPlaying(file: OCFile) {
2299-
// placeholder for stop-on-delete future code
2300-
if (mPlayerConnection != null && MimeTypeUtil.isAudio(file) && mPlayerConnection?.isPlaying() == true) {
2301-
mPlayerConnection?.stop(file)
2302-
}
2303-
}
2304-
23052299
/**
23062300
* Updates the view associated to the activity after the finish of an operation trying to move a file.
23072301
*
@@ -2700,10 +2694,9 @@ class FileDisplayActivity :
27002694
if (!user.isPresent) {
27012695
return // not reachable under normal conditions
27022696
}
2703-
val actualUser = user.get()
27042697
if ((showPreview && file.isDown && !file.isDownloading) || streamMedia) {
27052698
if (showInActivity) {
2706-
startMediaActivity(file, startPlaybackPosition, autoplay, actualUser)
2699+
startMediaActivity(file)
27072700
} else {
27082701
configureToolbarForPreview(file)
27092702
val mediaFragment: Fragment = newInstance(file, user.get(), startPlaybackPosition, autoplay)
@@ -2720,18 +2713,9 @@ class FileDisplayActivity :
27202713
}
27212714
}
27222715

2723-
private fun startMediaActivity(file: OCFile?, startPlaybackPosition: Long, autoplay: Boolean, user: User?) {
2724-
val previewMediaIntent = Intent(this, PreviewMediaActivity::class.java)
2725-
previewMediaIntent.putExtra(PreviewMediaActivity.EXTRA_FILE, file)
2726-
2727-
// Safely handle the absence of a user
2728-
if (user != null) {
2729-
previewMediaIntent.putExtra(PreviewMediaActivity.EXTRA_USER, user)
2730-
}
2731-
2732-
previewMediaIntent.putExtra(PreviewMediaActivity.EXTRA_START_POSITION, startPlaybackPosition)
2733-
previewMediaIntent.putExtra(PreviewMediaActivity.EXTRA_AUTOPLAY, autoplay)
2734-
startActivity(previewMediaIntent)
2716+
private fun startMediaActivity(file: OCFile) {
2717+
val searchType = listOfFilesFragment?.currentSearchType
2718+
playerLauncher.launch(this, file, searchType)
27352719
}
27362720

27372721
fun configureToolbarForPreview(file: OCFile?) {

app/src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,6 @@
113113
import com.owncloud.android.ui.helpers.FileOperationsHelper;
114114
import com.owncloud.android.ui.interfaces.OCFileListFragmentInterface;
115115
import com.owncloud.android.ui.preview.PreviewImageFragment;
116-
import com.owncloud.android.ui.preview.PreviewMediaActivity;
117116
import com.owncloud.android.utils.DisplayUtils;
118117
import com.owncloud.android.utils.EncryptionUtils;
119118
import com.owncloud.android.utils.EncryptionUtilsV2;
@@ -1232,7 +1231,7 @@ private void handlePendingDownloadFile(OCFile file) {
12321231
if (MimeTypeUtil.isVideo(file) && !file.isEncrypted() && mContainerActivity instanceof FileDisplayActivity fda) {
12331232
setFabVisible(false);
12341233
fda.startImagePreview(file, true, null);
1235-
} else if (PreviewMediaActivity.Companion.canBePreviewed(file) && !file.isEncrypted() && mContainerActivity instanceof FileDisplayActivity fda) {
1234+
} else if (!file.isEncrypted() && mContainerActivity instanceof FileDisplayActivity fda && fda.canMediaPreviewed(file)) {
12361235
setFabVisible(false);
12371236
fda.startMediaPreview(file, 0, true, true, true, true);
12381237
} else if (editorUtils.getEditor(accountManager.getUser(), file.getMimeType()) != null && !file.isEncrypted()) {

0 commit comments

Comments
 (0)