From 0657bf9d22d5833b3e30f6c37b116407cbcc01f4 Mon Sep 17 00:00:00 2001 From: Pierre Nicolas <pierre.nicolas@savoirfairelinux.com> Date: Fri, 16 Jun 2023 14:30:55 -0400 Subject: [PATCH] file transfer: fix path to send picture The bug is that the image is not placed in the correct path. Also fix bug where images were not preview in notifications. GitLab: #1298 Change-Id: Ifb4041dcd7d82eccb72d5e40e6f3cdc04d027e17 --- .../cx/ring/services/DeviceRuntimeServiceImpl.kt | 5 +---- .../cx/ring/services/NotificationServiceImpl.kt | 2 +- .../src/main/java/cx/ring/utils/AndroidFileUtils.kt | 13 ------------- .../src/main/kotlin/net/jami/model/DataTransfer.kt | 11 +---------- .../kotlin/net/jami/services/ConversationFacade.kt | 2 +- .../net/jami/services/DeviceRuntimeService.kt | 3 +-- 6 files changed, 5 insertions(+), 31 deletions(-) diff --git a/jami-android/app/src/main/java/cx/ring/services/DeviceRuntimeServiceImpl.kt b/jami-android/app/src/main/java/cx/ring/services/DeviceRuntimeServiceImpl.kt index 3e32303d5..3aa54cae4 100644 --- a/jami-android/app/src/main/java/cx/ring/services/DeviceRuntimeServiceImpl.kt +++ b/jami-android/app/src/main/java/cx/ring/services/DeviceRuntimeServiceImpl.kt @@ -76,10 +76,7 @@ class DeviceRuntimeServiceImpl( override fun getFilePath(filename: String) = AndroidFileUtils.getFilePath(mContext, filename) - override fun getConversationPath(conversationId: String, name: String): File = - AndroidFileUtils.getConversationPath(mContext, conversationId, name) - - override fun getConversationPath(accountId: String, conversationId: String,name: String): File = + override fun getConversationPath(accountId: String, conversationId: String, name: String): File = AndroidFileUtils.getConversationPath(mContext, accountId, conversationId, name) override fun getTemporaryPath(conversationId: String, name: String): File = diff --git a/jami-android/app/src/main/java/cx/ring/services/NotificationServiceImpl.kt b/jami-android/app/src/main/java/cx/ring/services/NotificationServiceImpl.kt index cbcb7bb59..d3f8f85e5 100644 --- a/jami-android/app/src/main/java/cx/ring/services/NotificationServiceImpl.kt +++ b/jami-android/app/src/main/java/cx/ring/services/NotificationServiceImpl.kt @@ -689,7 +689,7 @@ class NotificationServiceImpl( .setContentIntent(PendingIntent.getActivity(mContext, random.nextInt(), intentViewConversation, ContentUriHandler.immutable())) .setAutoCancel(true) if (info.showPicture()) { - val filePath = mDeviceRuntimeService.getConversationPath(conversation.uri.rawRingId, info.storagePath) + val filePath = mDeviceRuntimeService.getConversationPath(conversation.accountId, conversation.uri.rawRingId, info.storagePath) val img: Bitmap try { val d = Glide.with(mContext) diff --git a/jami-android/app/src/main/java/cx/ring/utils/AndroidFileUtils.kt b/jami-android/app/src/main/java/cx/ring/utils/AndroidFileUtils.kt index 70c4ec250..92e0852b2 100644 --- a/jami-android/app/src/main/java/cx/ring/utils/AndroidFileUtils.kt +++ b/jami-android/app/src/main/java/cx/ring/utils/AndroidFileUtils.kt @@ -340,16 +340,6 @@ object AndroidFileUtils { } } }.subscribeOn(Schedulers.io()) - @Throws(IOException::class) - fun getConversationFile(context: Context, uri: Uri, conversationId: String, name: String): File { - val file = getConversationPath(context, conversationId, name) - context.contentResolver.openInputStream(uri)?.use { inputStream -> - FileOutputStream(file).use { output -> - FileUtils.copyFile(inputStream, output) - } } - return file - } - fun getCachePath(context: Context, filename: String) = File(context.cacheDir, filename) fun getFilePath(context: Context, filename: String): File = context.getFileStreamPath(filename) @@ -372,9 +362,6 @@ object AndroidFileUtils { return conversationDir } - fun getConversationPath(context: Context, conversationId: String, name: String) = - File(getConversationDir(context, conversationId), name) - fun getConversationPath(context: Context, accountId: String, conversationId: String, name: String) = File(getConversationDir(context, accountId, conversationId), name) diff --git a/jami-android/libjamiclient/src/main/kotlin/net/jami/model/DataTransfer.kt b/jami-android/libjamiclient/src/main/kotlin/net/jami/model/DataTransfer.kt index d3b6df34a..c37c37b93 100644 --- a/jami-android/libjamiclient/src/main/kotlin/net/jami/model/DataTransfer.kt +++ b/jami-android/libjamiclient/src/main/kotlin/net/jami/model/DataTransfer.kt @@ -130,16 +130,7 @@ class DataTransfer : Interaction { val b = body return if (b == null) { if (fileId.isNullOrEmpty()) { "Error" } else fileId!! - } else { - var ext = StringUtils.getFileExtension(b) - if (ext.length > 8) ext = ext.substring(0, 8) - val dId = daemonId - if (dId == null || dId == 0L) { - id.toLong().toString() + '_' + HashUtils.sha1(b).toHex() + '.' + ext - } else { - dId.toString() + '_' + HashUtils.sha1(b).toHex() + '.' + ext - } - } + } else return b } fun setSize(size: Long) { diff --git a/jami-android/libjamiclient/src/main/kotlin/net/jami/services/ConversationFacade.kt b/jami-android/libjamiclient/src/main/kotlin/net/jami/services/ConversationFacade.kt index 696bd5dd5..d9649d77e 100644 --- a/jami-android/libjamiclient/src/main/kotlin/net/jami/services/ConversationFacade.kt +++ b/jami-android/libjamiclient/src/main/kotlin/net/jami/services/ConversationFacade.kt @@ -168,7 +168,7 @@ class ConversationFacade( if (transfer.status === InteractionStatus.TRANSFER_ONGOING) { mAccountService.cancelDataTransfer(conversation.accountId, conversation.uri.rawRingId, transfer.messageId, transfer.fileId!!) } else { - val file = mDeviceRuntimeService.getConversationPath(conversation.uri.rawRingId, transfer.storagePath) + val file = mDeviceRuntimeService.getConversationPath(conversation.accountId, conversation.uri.rawRingId, transfer.storagePath) if (conversation.isSwarm) { mDisposableBag.add(Completable.fromAction { file.delete() } .subscribeOn(Schedulers.io()) diff --git a/jami-android/libjamiclient/src/main/kotlin/net/jami/services/DeviceRuntimeService.kt b/jami-android/libjamiclient/src/main/kotlin/net/jami/services/DeviceRuntimeService.kt index 20ecfa482..3431e0082 100644 --- a/jami-android/libjamiclient/src/main/kotlin/net/jami/services/DeviceRuntimeService.kt +++ b/jami-android/libjamiclient/src/main/kotlin/net/jami/services/DeviceRuntimeService.kt @@ -28,11 +28,10 @@ abstract class DeviceRuntimeService : SystemInfoCallbacks { abstract fun provideFilesDir(): File abstract val cacheDir: File abstract fun getFilePath(name: String): File - abstract fun getConversationPath(conversationId: String, name: String): File abstract fun getConversationPath(accountId: String, conversationId: String, name: String): File fun getConversationPath(interaction: DataTransfer): File = if (interaction.conversationId == null) - getConversationPath(interaction.conversation!!.participant!!, interaction.storagePath) + getConversationPath(interaction.account!!, interaction.conversation!!.participant!!, interaction.storagePath) else interaction.publicPath!! fun getNewConversationPath(accountId: String, conversationId: String, name: String): File { -- GitLab