From 73185da71f5e83dc482bfd3da085230386cda734 Mon Sep 17 00:00:00 2001 From: Smarshal21 Date: Tue, 14 Nov 2023 14:07:50 +0530 Subject: [PATCH] Added ProgressBar Signed-off-by: Smarshal21 Added ProgressBar Signed-off-by: Smarshal21 Added ProgressBar Signed-off-by: Smarshal21 added progress bar Signed-off-by: Smarshal21 --- .../com/nextcloud/talk/chat/ChatActivity.kt | 8 ++++++-- .../ConversationsListActivity.kt | 18 +++++++++++++++++- .../talk/jobs/UploadAndShareFilesWorker.kt | 17 ++++++++++++++++- app/src/main/res/layout/activity_chat.xml | 16 ++++++++++++++++ app/src/main/res/values/strings.xml | 1 + 5 files changed, 56 insertions(+), 4 deletions(-) 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?