diff --git a/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt b/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt
index 507eb905b..21e842619 100644
--- a/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt
+++ b/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt
@@ -143,6 +143,7 @@ import com.nextcloud.talk.extensions.loadAvatarOrImagePreview
import com.nextcloud.talk.jobs.DownloadFileToCacheWorker
import com.nextcloud.talk.jobs.ShareOperationWorker
import com.nextcloud.talk.jobs.UploadAndShareFilesWorker
+import com.nextcloud.talk.jobs.UploadAndShareFilesWorker.Companion.upload
import com.nextcloud.talk.location.LocationPickerActivity
import com.nextcloud.talk.messagesearch.MessageSearchActivity
import com.nextcloud.talk.models.domain.ConversationModel
@@ -3254,12 +3255,15 @@ class ChatActivity :
try {
require(fileUri.isNotEmpty())
- UploadAndShareFilesWorker.upload(
+ upload(
+ context,
fileUri,
room,
currentConversation?.displayName!!,
metaData
- )
+ ) { showProgressBar: Boolean ->
+ binding.idprogressbar.visibility = if (showProgressBar) View.VISIBLE else View.GONE
+ }
} catch (e: IllegalArgumentException) {
context.resources?.getString(R.string.nc_upload_failed)?.let {
Snackbar.make(binding.root, it, Snackbar.LENGTH_LONG)
diff --git a/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt b/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt
index 31a623edb..2af2a4940 100644
--- a/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt
+++ b/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt
@@ -131,6 +131,7 @@ import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers
import io.reactivex.subjects.BehaviorSubject
+import kotlinx.coroutines.DelicateCoroutinesApi
import org.apache.commons.lang3.builder.CompareToBuilder
import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode
@@ -1343,11 +1344,26 @@ class ConversationsListActivity :
try {
filesToShare?.forEach {
UploadAndShareFilesWorker.upload(
+ context,
it,
selectedConversation!!.token!!,
selectedConversation!!.displayName!!,
null
- )
+ ) { success ->
+ if (success) {
+ Snackbar.make(
+ binding.root,
+ context.resources.getString(R.string.nc_upload_success),
+ Snackbar.LENGTH_LONG
+ ).show()
+ } else {
+ Snackbar.make(
+ binding.root,
+ context.resources.getString(R.string.nc_upload_failed),
+ Snackbar.LENGTH_LONG
+ ).show()
+ }
+ }
}
} catch (e: IllegalArgumentException) {
Snackbar.make(binding.root, context.resources.getString(R.string.nc_upload_failed), Snackbar.LENGTH_LONG)
diff --git a/app/src/main/java/com/nextcloud/talk/jobs/UploadAndShareFilesWorker.kt b/app/src/main/java/com/nextcloud/talk/jobs/UploadAndShareFilesWorker.kt
index 20eef7217..035d23762 100644
--- a/app/src/main/java/com/nextcloud/talk/jobs/UploadAndShareFilesWorker.kt
+++ b/app/src/main/java/com/nextcloud/talk/jobs/UploadAndShareFilesWorker.kt
@@ -18,10 +18,13 @@ import android.os.Build
import android.os.Bundle
import android.os.SystemClock
import android.util.Log
+import android.widget.Toast
+import android.widget.Toast
import androidx.core.app.NotificationCompat
import androidx.work.Data
import androidx.work.ExistingWorkPolicy
import androidx.work.OneTimeWorkRequest
+import androidx.work.WorkInfo
import androidx.work.WorkManager
import androidx.work.Worker
import androidx.work.WorkerParameters
@@ -382,7 +385,15 @@ class UploadAndShareFilesWorker(val context: Context, workerParameters: WorkerPa
}
}
- fun upload(fileUri: String, roomToken: String, conversationName: String, metaData: String?) {
+ fun upload(
+ fileUri: String,
+ roomToken: String,
+ conversationName: String,
+ metaData: String?,
+ progressBarCallback: (Boolean) -> Unit
+ ) {
+ progressBarCallback(true)
+
val data: Data = Data.Builder()
.putString(DEVICE_SOURCE_FILE, fileUri)
.putString(ROOM_TOKEN, roomToken)
@@ -395,4 +406,8 @@ class UploadAndShareFilesWorker(val context: Context, workerParameters: WorkerPa
WorkManager.getInstance().enqueueUniqueWork(fileUri, ExistingWorkPolicy.KEEP, uploadWorker)
}
}
+
+ private fun showToast(context: Context, message: String) {
+ Toast.makeText(context, message, Toast.LENGTH_SHORT).show()
+ }
}
diff --git a/app/src/main/res/layout/activity_chat.xml b/app/src/main/res/layout/activity_chat.xml
index 12bc7c8eb..af945f8df 100644
--- a/app/src/main/res/layout/activity_chat.xml
+++ b/app/src/main/res/layout/activity_chat.xml
@@ -157,6 +157,22 @@
app:textAutoLink="all"
tools:visibility="visible" />
+
+
+
+
+
Take video
Create poll
Share from %1$s
+ Upload Succeeded
Sorry, upload failed
Choose files
Send these files to %1$s?