Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[AND-176] Intercept Attachment Download Process within internal activities #5522

Conversation

JcMinarro
Copy link
Member

🎯 Goal

Related PR: #5490

On implementing the previous PR, the use of DownloadAttachmentUriGenerator and DownloadRequestInterceptor was obtained from the ones configured within ChatTheme entity.
The problem is that our internal activities don't use the ChatTheme that our customers configure when they initialize the SDK. There aren't any static references to it, so the default implementation was used.

With this PR the customization used on ChatTheme is forwarded to our internal activities

🧪 Testing

To test it, you only need to add a custom implementation of those dependencies and check it is being used when downloading attachments.

From Message List Attachment From Media Gallery
Screenshot from 2024-12-16 09-42-23 Screenshot from 2024-12-16 09-42-32
Patch that prints some logs when the implementation is used
Subject: [PATCH] Print some logs
---
Index: stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/ui/MessagesActivity.kt
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/ui/MessagesActivity.kt b/stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/ui/MessagesActivity.kt
--- a/stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/ui/MessagesActivity.kt	(revision 259e7dc09e4cec650d6d12b817adb44ce4270512)
+++ b/stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/ui/MessagesActivity.kt	(date 1734352774963)
@@ -18,6 +18,7 @@
 
 import android.content.Context
 import android.content.Intent
+import android.net.Uri
 import android.os.Bundle
 import android.util.Log
 import androidx.activity.compose.setContent
@@ -92,11 +93,13 @@
 import io.getstream.chat.android.compose.viewmodel.messages.MessageComposerViewModel
 import io.getstream.chat.android.compose.viewmodel.messages.MessageListViewModel
 import io.getstream.chat.android.compose.viewmodel.messages.MessagesViewModelFactory
+import io.getstream.chat.android.models.Attachment
 import io.getstream.chat.android.models.Channel
 import io.getstream.chat.android.models.PollConfig
 import io.getstream.chat.android.models.ReactionSortingByFirstReactionAt
 import io.getstream.chat.android.models.ReactionSortingByLastReactionAt
 import io.getstream.chat.android.models.VotingVisibility
+import io.getstream.chat.android.ui.common.helper.DownloadAttachmentUriGenerator
 import io.getstream.chat.android.ui.common.state.messages.MessageMode
 import io.getstream.chat.android.ui.common.state.messages.Reply
 import io.getstream.chat.android.ui.common.state.messages.list.DeletedMessageVisibility
@@ -157,6 +160,14 @@
             isInDarkMode = isInDarkMode,
             colors = colors,
             shapes = shapes,
+            downloadAttachmentUriGenerator = { attachment ->
+                println("TestingLog: Generating Uri for attachment: $attachment")
+                Uri.parse(attachment.assetUrl ?: attachment.imageUrl)
+                                             },
+            downloadRequestInterceptor = { request ->
+                println("TestingLog: Intercepting request: $request")
+                request
+            },
             typography = typography,
             dateFormatter = ChatApp.dateFormatter,
             autoTranslationEnabled = ChatApp.autoTranslationEnabled,

🎉 GIF

@JcMinarro JcMinarro force-pushed the feature/intercept-attachment-download-process-within-internal-activities branch from 8a51f63 to ddb2964 Compare December 16, 2024 13:12
@JcMinarro JcMinarro merged commit c9d88ab into develop Dec 16, 2024
9 checks passed
@JcMinarro JcMinarro deleted the feature/intercept-attachment-download-process-within-internal-activities branch December 16, 2024 21:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants