|
@@ -27,7 +27,9 @@
|
|
|
package com.owncloud.android.ui.preview
|
|
|
|
|
|
import android.app.Activity
|
|
|
+import android.content.ComponentName
|
|
|
import android.content.Intent
|
|
|
+import android.content.ServiceConnection
|
|
|
import android.content.res.Configuration
|
|
|
import android.graphics.Bitmap
|
|
|
import android.graphics.BitmapFactory
|
|
@@ -37,6 +39,7 @@ import android.net.Uri
|
|
|
import android.os.AsyncTask
|
|
|
import android.os.Bundle
|
|
|
import android.os.Handler
|
|
|
+import android.os.IBinder
|
|
|
import android.os.Looper
|
|
|
import android.view.Menu
|
|
|
import android.view.MenuItem
|
|
@@ -63,6 +66,7 @@ import com.nextcloud.client.account.User
|
|
|
import com.nextcloud.client.account.UserAccountManager
|
|
|
import com.nextcloud.client.di.Injectable
|
|
|
import com.nextcloud.client.files.downloader.FileDownloadHelper
|
|
|
+import com.nextcloud.client.files.downloader.FileDownloadWorker
|
|
|
import com.nextcloud.client.jobs.BackgroundJobManager
|
|
|
import com.nextcloud.client.media.ExoplayerListener
|
|
|
import com.nextcloud.client.media.NextcloudExoPlayer.createNextcloudExoplayer
|
|
@@ -83,7 +87,6 @@ import com.owncloud.android.lib.common.operations.OnRemoteOperationListener
|
|
|
import com.owncloud.android.lib.common.operations.RemoteOperation
|
|
|
import com.owncloud.android.lib.common.operations.RemoteOperationResult
|
|
|
import com.owncloud.android.lib.common.utils.Log_OC
|
|
|
-import com.owncloud.android.operations.DownloadType
|
|
|
import com.owncloud.android.operations.RemoveFileOperation
|
|
|
import com.owncloud.android.operations.SynchronizeFileOperation
|
|
|
import com.owncloud.android.ui.activity.FileActivity
|
|
@@ -560,12 +563,33 @@ class PreviewMediaActivity :
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ override fun newTransferenceServiceConnection(): ServiceConnection {
|
|
|
+ return PreviewMediaServiceConnection()
|
|
|
+ }
|
|
|
+
|
|
|
private fun onSynchronizeFileOperationFinish(result: RemoteOperationResult<*>?) {
|
|
|
result?.let {
|
|
|
invalidateOptionsMenu()
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private inner class PreviewMediaServiceConnection : ServiceConnection {
|
|
|
+ override fun onServiceConnected(componentName: ComponentName?, service: IBinder?) {
|
|
|
+ componentName?.let {
|
|
|
+ if (it == ComponentName(this@PreviewMediaActivity, FileDownloadWorker::class.java)) {
|
|
|
+ mDownloaderBinder = service as FileDownloadWorker.FileDownloaderBinder
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun onServiceDisconnected(componentName: ComponentName?) {
|
|
|
+ if (componentName == ComponentName(this@PreviewMediaActivity, FileDownloadWorker::class.java)) {
|
|
|
+ Log_OC.d(PreviewImageActivity.TAG, "Download service suddenly disconnected")
|
|
|
+ mDownloaderBinder = null
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
override fun downloadFile(file: OCFile?, packageName: String?, activityName: String?) {
|
|
|
requestForDownload(file, OCFileListFragment.DOWNLOAD_SEND, packageName, activityName)
|
|
|
}
|
|
@@ -576,17 +600,16 @@ class PreviewMediaActivity :
|
|
|
packageName: String? = null,
|
|
|
activityName: String? = null
|
|
|
) {
|
|
|
- if (FileDownloadHelper.instance().isDownloading(user, file)) {
|
|
|
+ if (fileDownloadHelper.isDownloading(user, file)) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
user?.let { user ->
|
|
|
file?.let { file ->
|
|
|
- FileDownloadHelper.instance().downloadFile(
|
|
|
+ fileDownloadHelper.downloadFile(
|
|
|
user,
|
|
|
file,
|
|
|
downloadBehavior ?: "",
|
|
|
- DownloadType.DOWNLOAD,
|
|
|
packageName ?: "",
|
|
|
activityName ?: ""
|
|
|
)
|