Added ProgressBar

Signed-off-by: Smarshal21 <lcb2021048@iiitl.ac.in>

Added ProgressBar

Signed-off-by: Smarshal21 <lcb2021048@iiitl.ac.in>

Added ProgressBar

Signed-off-by: Smarshal21 <lcb2021048@iiitl.ac.in>

added progress bar

Signed-off-by: Smarshal21 <lcb2021048@iiitl.ac.in>
This commit is contained in:
Smarshal21 2023-11-14 14:07:50 +05:30 committed by Andy Scherzinger
parent 725bd00ac4
commit 73185da71f
5 changed files with 56 additions and 4 deletions

View File

@ -143,6 +143,7 @@ import com.nextcloud.talk.extensions.loadAvatarOrImagePreview
import com.nextcloud.talk.jobs.DownloadFileToCacheWorker import com.nextcloud.talk.jobs.DownloadFileToCacheWorker
import com.nextcloud.talk.jobs.ShareOperationWorker import com.nextcloud.talk.jobs.ShareOperationWorker
import com.nextcloud.talk.jobs.UploadAndShareFilesWorker import com.nextcloud.talk.jobs.UploadAndShareFilesWorker
import com.nextcloud.talk.jobs.UploadAndShareFilesWorker.Companion.upload
import com.nextcloud.talk.location.LocationPickerActivity import com.nextcloud.talk.location.LocationPickerActivity
import com.nextcloud.talk.messagesearch.MessageSearchActivity import com.nextcloud.talk.messagesearch.MessageSearchActivity
import com.nextcloud.talk.models.domain.ConversationModel import com.nextcloud.talk.models.domain.ConversationModel
@ -3254,12 +3255,15 @@ class ChatActivity :
try { try {
require(fileUri.isNotEmpty()) require(fileUri.isNotEmpty())
UploadAndShareFilesWorker.upload( upload(
context,
fileUri, fileUri,
room, room,
currentConversation?.displayName!!, currentConversation?.displayName!!,
metaData metaData
) ) { showProgressBar: Boolean ->
binding.idprogressbar.visibility = if (showProgressBar) View.VISIBLE else View.GONE
}
} catch (e: IllegalArgumentException) { } catch (e: IllegalArgumentException) {
context.resources?.getString(R.string.nc_upload_failed)?.let { context.resources?.getString(R.string.nc_upload_failed)?.let {
Snackbar.make(binding.root, it, Snackbar.LENGTH_LONG) Snackbar.make(binding.root, it, Snackbar.LENGTH_LONG)

View File

@ -131,6 +131,7 @@ import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers import io.reactivex.schedulers.Schedulers
import io.reactivex.subjects.BehaviorSubject import io.reactivex.subjects.BehaviorSubject
import kotlinx.coroutines.DelicateCoroutinesApi
import org.apache.commons.lang3.builder.CompareToBuilder import org.apache.commons.lang3.builder.CompareToBuilder
import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode import org.greenrobot.eventbus.ThreadMode
@ -1343,11 +1344,26 @@ class ConversationsListActivity :
try { try {
filesToShare?.forEach { filesToShare?.forEach {
UploadAndShareFilesWorker.upload( UploadAndShareFilesWorker.upload(
context,
it, it,
selectedConversation!!.token!!, selectedConversation!!.token!!,
selectedConversation!!.displayName!!, selectedConversation!!.displayName!!,
null 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) { } catch (e: IllegalArgumentException) {
Snackbar.make(binding.root, context.resources.getString(R.string.nc_upload_failed), Snackbar.LENGTH_LONG) Snackbar.make(binding.root, context.resources.getString(R.string.nc_upload_failed), Snackbar.LENGTH_LONG)

View File

@ -18,10 +18,13 @@ import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.os.SystemClock import android.os.SystemClock
import android.util.Log import android.util.Log
import android.widget.Toast
import android.widget.Toast
import androidx.core.app.NotificationCompat import androidx.core.app.NotificationCompat
import androidx.work.Data import androidx.work.Data
import androidx.work.ExistingWorkPolicy import androidx.work.ExistingWorkPolicy
import androidx.work.OneTimeWorkRequest import androidx.work.OneTimeWorkRequest
import androidx.work.WorkInfo
import androidx.work.WorkManager import androidx.work.WorkManager
import androidx.work.Worker import androidx.work.Worker
import androidx.work.WorkerParameters 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() val data: Data = Data.Builder()
.putString(DEVICE_SOURCE_FILE, fileUri) .putString(DEVICE_SOURCE_FILE, fileUri)
.putString(ROOM_TOKEN, roomToken) .putString(ROOM_TOKEN, roomToken)
@ -395,4 +406,8 @@ class UploadAndShareFilesWorker(val context: Context, workerParameters: WorkerPa
WorkManager.getInstance().enqueueUniqueWork(fileUri, ExistingWorkPolicy.KEEP, uploadWorker) WorkManager.getInstance().enqueueUniqueWork(fileUri, ExistingWorkPolicy.KEEP, uploadWorker)
} }
} }
private fun showToast(context: Context, message: String) {
Toast.makeText(context, message, Toast.LENGTH_SHORT).show()
}
} }

View File

@ -157,6 +157,22 @@
app:textAutoLink="all" app:textAutoLink="all"
tools:visibility="visible" /> tools:visibility="visible" />
<LinearLayout
android:id="@+id/idprogressbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true"
android:gravity="center_vertical"
android:orientation="vertical"
android:visibility="gone"
tools:visibility="visible">
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />
</LinearLayout>
<com.nextcloud.ui.popupbubble.PopupBubble <com.nextcloud.ui.popupbubble.PopupBubble
android:id="@+id/popupBubbleView" android:id="@+id/popupBubbleView"
android:layout_width="wrap_content" android:layout_width="wrap_content"

View File

@ -506,6 +506,7 @@ How to translate with transifex:
<string name="nc_upload_video_from_cam">Take video</string> <string name="nc_upload_video_from_cam">Take video</string>
<string name="nc_create_poll">Create poll</string> <string name="nc_create_poll">Create poll</string>
<string name="nc_upload_from_cloud">Share from %1$s</string> <string name="nc_upload_from_cloud">Share from %1$s</string>
<string name="nc_upload_success">Upload Succeeded</string>
<string name="nc_upload_failed">Sorry, upload failed</string> <string name="nc_upload_failed">Sorry, upload failed</string>
<string name="nc_upload_choose_local_files">Choose files</string> <string name="nc_upload_choose_local_files">Choose files</string>
<string name="nc_upload_confirm_send_multiple">Send these files to %1$s?</string> <string name="nc_upload_confirm_send_multiple">Send these files to %1$s?</string>