From 3a3518b2a50112fb933c22e333d4f95ea0e0c8a9 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 15 Jan 2025 17:48:09 +0100 Subject: [PATCH] Do not disable file attachments in conversation attached to a call, added navigation to file viewer from in-call conversation --- .../ui/call/fragment/ConversationFragment.kt | 30 +++++++++++++++++++ .../layout/chat_conversation_send_area.xml | 2 +- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/linphone/ui/call/fragment/ConversationFragment.kt b/app/src/main/java/org/linphone/ui/call/fragment/ConversationFragment.kt index eef364d6e..c18d716ba 100644 --- a/app/src/main/java/org/linphone/ui/call/fragment/ConversationFragment.kt +++ b/app/src/main/java/org/linphone/ui/call/fragment/ConversationFragment.kt @@ -19,10 +19,14 @@ */ package org.linphone.ui.call.fragment +import android.content.Intent import android.os.Bundle import android.view.View import androidx.navigation.fragment.findNavController +import org.linphone.R import org.linphone.core.tools.Log +import org.linphone.ui.fileviewer.FileViewerActivity +import org.linphone.ui.fileviewer.MediaViewerActivity import org.linphone.ui.main.chat.fragment.ConversationFragment class ConversationFragment : ConversationFragment() { @@ -40,5 +44,31 @@ class ConversationFragment : ConversationFragment() { binding.setBackClickListener { findNavController().popBackStack() } + + sharedViewModel.displayFileEvent.observe(viewLifecycleOwner) { + it.consume { bundle -> + if (findNavController().currentDestination?.id == R.id.inCallConversationFragment) { + val path = bundle.getString("path", "") + val isMedia = bundle.getBoolean("isMedia", false) + if (path.isEmpty()) { + Log.e("$TAG Can't navigate to file viewer for empty path!") + return@consume + } + + Log.i( + "$TAG Navigating to [${if (isMedia) "media" else "file"}] viewer fragment with path [$path]" + ) + if (isMedia) { + val intent = Intent(requireActivity(), MediaViewerActivity::class.java) + intent.putExtras(bundle) + startActivity(intent) + } else { + val intent = Intent(requireActivity(), FileViewerActivity::class.java) + intent.putExtras(bundle) + startActivity(intent) + } + } + } + } } } diff --git a/app/src/main/res/layout/chat_conversation_send_area.xml b/app/src/main/res/layout/chat_conversation_send_area.xml index 5b1f703aa..0d961eb88 100644 --- a/app/src/main/res/layout/chat_conversation_send_area.xml +++ b/app/src/main/res/layout/chat_conversation_send_area.xml @@ -108,7 +108,7 @@ android:padding="8dp" android:contentDescription="@string/content_description_chat_open_attach_file" android:src="@{viewModel.areFilePickersOpen ? @drawable/x : @drawable/paperclip, default=@drawable/paperclip}" - android:visibility="@{viewModel.isVoiceRecording ? View.INVISIBLE : (viewModel.isKeyboardOpen || viewModel.isCallConversation || !viewModel.isFileTransferServerAvailable) ? View.GONE : View.VISIBLE}" + android:visibility="@{viewModel.isVoiceRecording ? View.INVISIBLE : (viewModel.isKeyboardOpen || !viewModel.isFileTransferServerAvailable) ? View.GONE : View.VISIBLE}" app:layout_constraintBottom_toBottomOf="@id/message_area_background" app:layout_constraintEnd_toStartOf="@id/message_area_background" app:layout_constraintStart_toEndOf="@id/emoji_picker_toggle"